Java JDBC连接数据库

package cn.cqvie.yjq;

import java.sql.*;

/**
* 注册数据库的驱动程序,并得到数据库的连接对象
* @author yu
*
*/ public class DBUtil { static String DriverName = "com.microsoft.sqlserver.jdbc.SQLServerDriver";
static String URL = "jdbc:sqlserver://localhost:1433;DatabaseName=book";
static String USER = "sa";
static String PASSWORD = "123"; //静态代码块,只执行一次
static {
try {
Class.forName(DriverName);
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
} //得到连接对象
public static Connection getConnection() {
Connection conn = null;
try {
conn = DriverManager.getConnection(URL,USER,PASSWORD);
} catch (SQLException e) {
e.printStackTrace();
}
return conn;
} //关闭连接
public static void free(ResultSet rs,Statement stmt, Connection conn) {
if(rs != null) {
try {
rs.close();
} catch (SQLException e) {
e.printStackTrace();
} finally {
if(stmt != null) {
try {
stmt.close();
} catch (Exception e2) {
e2.printStackTrace();
} finally {
if(conn != null) {
try {
conn.close();
} catch (Exception e3) {
e3.printStackTrace();
}
}
}
}
}
}
/*
if(stmt != null) {
try {
stmt.close();
} catch (SQLException e) {
e.printStackTrace();
} finally {
if(stmt != null) {
try {
stmt.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
} if(conn != null) {
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
} finally {
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
*/
}
}

使用JDBC实现增删改查的功能

package cn.cqvie.yjq;

import java.sql.*;
import java.util.*; public class SQLHelper { /**
* 根据Connection,带坑语句,所有坑的值params来生成一个具体的PreparedStatement语句
* @param conn
* @param cmdText
* @param params
* @return
* @throws SQLException
*/ public static PreparedStatement getPreparedStatement(Connection conn,String cmdText,Object... params) {
if(conn == null) {
return null;
}
PreparedStatement pstmt = null;
try {
pstmt = conn.prepareStatement(cmdText);
int i = 1;
if(params != null) {
for(Object obj:params) {
if(obj != null) {
pstmt.setObject(i, obj);
}
i ++;
}
}
//DBUtil.free(null, null, conn);
return pstmt;
} catch (SQLException e) {
e.printStackTrace();
DBUtil.free(null, pstmt, conn);
}
return null;
} /**
* 查询一个结果集
* @param conn
* @param cmdText
* @param params
* @return
* @throws SQLException
*/
public static List<Object[]> executeQuery(Connection conn,String cmdText,Object...params) {
PreparedStatement pstmt = getPreparedStatement(conn, cmdText, params);
ResultSet rs = null;
List<Object[]> list = new ArrayList<Object[]>();
try {
rs = pstmt.executeQuery();
//从rs中获取每一个行数据的列的个数
ResultSetMetaData rsmd = rs.getMetaData();
int columnCount = rsmd.getColumnCount();
//定义一个保存每一行的各个列的值的容器,Object[]
Object[] objects = null;
while(rs.next()) {
objects = new Object[columnCount];
for(int i = 0;i < columnCount;i ++) {
objects[i] = rs.getObject(i + 1);
}
list.add(objects);
}
} catch (SQLException e) {
e.printStackTrace();
} finally {
DBUtil.free(rs, pstmt, conn);
}
return list;
} /**
* 查询一个具体的值
* @param conn
* @param cmdText
* @param params
* @return
* @throws SQLException
*/
public static Object executeScalar(Connection conn,String cmdText,Object...params) {
Object obj = null;
if(conn == null) {
return null;
}
List<Object[]> list = executeQuery(conn, cmdText, params);
if(list != null && list.size() != 0) {
obj = list.get(0)[0];
return obj;
}
return null;
} /**
* 增删改方法
* @param conn
* @param cmdText
* @param params
* @return
* @throws SQLException
*/
public static int executeUpdate(Connection conn,String cmdText,Object...params) {
if(conn == null) {
return -2;
}
PreparedStatement pstmt = getPreparedStatement(conn, cmdText, params);
int rows = 0;
try {
rows = pstmt.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
} finally {
DBUtil.free(null, pstmt, conn);
}
return rows;
}
}

纯Java JDBC连接数据库,且用JDBC实现增删改查的功能的更多相关文章

  1. 用JDBC连接 数据库 进行简单的增删改查

    JDBC为java的基础.用jdbc实现对数据库的增删改查的功能是程序员的基本要求.本例以mysql为例,首先要使用本例需要添加mysql-connector-java-5.1.7-bin.jar包. ...

  2. java springboot整合zookeeper入门教程(增删改查)

    java springboot整合zookeeper增删改查入门教程 zookeeper的安装与集群搭建参考:https://www.cnblogs.com/zwcry/p/10272506.html ...

  3. Java 实现一个 能够 进行简单的增删改查的 超市管理系统

    1. 首先编写一个 Fruitltem 的商品类, 描述 商品的基本信息. 代码如下: 保证详细, 运行的起来, 有什么 问题也可以评论留言. /* * 自定义类, 描述商品信息 * * 商品的属性: ...

  4. Java数据库连接--JDBC基础知识(操作数据库:增删改查)

    一.JDBC简介 JDBC是连接java应用程序和数据库之间的桥梁. 什么是JDBC? Java语言访问数据库的一种规范,是一套API. JDBC (Java Database Connectivit ...

  5. JDBC【1】-- 入门之增删改查

    目录 1.jdbc是什么 2.使用IDEA开发 2.1 创建数据库,数据表 2.2 使用IDEA创建项目 1.jdbc是什么 JDBC(Java DataBase Connectivity,java数 ...

  6. JDBC+Servlet+JSP实现基本的增删改查(简易通讯录)

    前言: 最近学习JavaWeb的过程中,自己实践练手了几个小项目,目前已经上传到我的Github上https://github.com/Snailclimb/JavaWebProject.目前只上传了 ...

  7. java程序设计课期中考试——数据库的增删改查和简单的js界面

    首先是设计思路,对于数据库的增删改查,我们借助Ecilipse来进行前端和后端的编写.Ecilipse是可以进行java web项目的操作的. 前端,我们选择用使用jsp,所谓的jsp就是可以嵌入其他 ...

  8. Java连接MySQL数据库,并进行增删改查

    1.具体的代码实现 import java.sql.*; public class DatabaseService { /** * Create Connection * * @param dbtyp ...

  9. java使用原生MySQL实现数据的增删改查以及数据库连接池技术

    一.工具类及配置文件准备工作 1.1 引入jar包 使用原生MySQL,只需要用到MySQL连接的jar包,maven引用方式如下: <dependency> <groupId> ...

随机推荐

  1. Android DalivkVM与JVM的比较

    JVM 与 DalivkVM的区别 Android 为什么还有搞一个Dalivk虚拟机,不是已经就有Java虚拟机了吗,为什么还要专门搞一个Dalivk虚拟机呢? 答: 1.以前Java是Sun公司的 ...

  2. dorado7-发布

    1.首先将configure.properties中Debug删除 2.eclipse自带的打包方式进行打包 2.1 next==>选择打包文件存放的路径==>finish==>xx ...

  3. update from用法

    from:https://www.cnblogs.com/zerocc/archive/2011/11/01/2231841.html update 表名 SET  更新字段 FROM 更新表名(多个 ...

  4. .NET 简易方法拦截器

    伟大的无产阶级Willaim曾说过:"无论你觉得自己多么的了不起,也永远有人比你更强".对,我说过!我就是william. 今天想记录一下在项目中遇到的一个比较有意思的东西,异常拦 ...

  5. 基于MVC框架Aspose.Words打印到Word中写法

    控件bin文件下载地址:https://download.csdn.net/download/u012949335/10610726 //前端打印写法 @{ ViewBag.Title = " ...

  6. window10下Docker安装

    首先window版本必须是10,如果是win7那么安装方法有所不同,win10是官方支持安装的.笔者安装的是Community社区版,版本信息如下: 1.去docker官网下载win10安装包: ht ...

  7. keepalive 原理讲解

    keepalive 我们说到keepalive的时候,需要先明确一点,这个keepalive说的是tcp的还是http的. tcp的keepalive是侧重在保持客户端和服务端的连接,一方会不定期发送 ...

  8. 程序媛计划——python初级课时1~2

    在命令行中运行py文件:python 文件路径/文件名 python变量必须赋值后才能使用,因为py变量只有赋值后才会被创建. py可以同时给多个变量赋值:a,b,c = 10,20,'dfjkdj' ...

  9. 914. X of a Kind in a Deck of Cards

    In a deck of cards, each card has an integer written on it. Return true if and only if you can choos ...

  10. 网络请求 get 请求时, 如果参数中的字符带有+号

    网络请求 get 请求时, 如果参数中的字符带有+号, 今天前端在调用我的API时, 发现有个参数一直没法通过我后台的验证, 但是在前端查看时, 该参数结构又没有什么异常, 又是一番查找, 直到在后端 ...