jdbc的工具类抽取
【说明】
因为传统JDBC的开发,注册驱动,获得连接,释放资源这些代码都是重复编写的。所以可以将重复的代码提取到一个类中来完成。
【Jdbc工具类:】
package com.jdbc.utils;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
/**
* jdbc工具类
* @author Administrator
*
*/
public class JDBCUtils {
private static final String driverClassName;//数据库驱动
private static final String url;//连接数据库地址
private static final String username;//数据库用户
private static final String password;//数据库密码
static{
//给以上的定义的变量赋值
driverClassName="com.mysql.jdbc.Driver";
url="jdbc:mysql:///jdbc_demo";
username="root";
password="root";
}
//注册驱动
public static void loadDriver() throws Exception{
Class.forName(driverClassName);
}
//获取连接
public static Connection getConnection() throws Exception{
//注册驱动
loadDriver();
Connection connection=null;
//获取连接
connection = DriverManager.getConnection(url, username, password);
return connection;
}
//释放资源 (适合添加修改删除的的释放资源)
public static void release(Statement stmt,Connection conn) throws Exception{
//关闭执行sql语句的对象
if (stmt!=null) {
stmt.close();
stmt=null;
}
//关闭数据库的连接
if (conn!=null) {
conn.close();
conn=null;
}
}
//释放资源 (适合查询的释放资源)
public static void release1(ResultSet resultSet, Statement stmt,Connection conn) throws Exception{
//关闭结果集
if (resultSet!=null) {
resultSet.close();
resultSet=null;
}
//关闭执行sql语句的对象
if (stmt!=null) {
stmt.close();
stmt=null;
}
//关闭数据库的连接
if (conn!=null) {
conn.close();
conn=null;
}
}
}
测试jdbc工具类
【案例:查询】
//查询用户信息
@Test
public void testSeach() throws Exception {
//2.获取数据库的连接
Connection conn = JDBCUtils.getConnection();
Statement stmt=null;
ResultSet resultSet=null;
//3.创建执行sql需要的对象
stmt = conn.createStatement();
//4.编写sql语句
String sql="select * from t_user";
//5.执行sql语句(通过第三步的对象来执行)
resultSet = stmt.executeQuery(sql);
//6.遍历结果集
while (resultSet.next()) {
System.out.println("用户名称:"+resultSet.getString("name")+" 年龄"+resultSet.getInt("age"));
}
//7.释放资源
JDBCUtils.release1(resultSet, stmt, conn);
}
结果图:
【案例:添加】
//用户添加
@Test
public void testadd() throws Exception {
Statement stmt=null;
Connection conn=null;
//获取连接
conn = JDBCUtils.getConnection();
//3.创建执行sql需要的对象
stmt = conn.createStatement();
//4.编写sql语句
String sql="INSERT INTO t_user VALUES(null,'小公牛','19')";
//5.执行sql语句(通过第三步的对象来执行)
int i = stmt.executeUpdate(sql);
//6.释放资源
JDBCUtils.release(stmt, conn);
}
【注意:】
只有查询操作的时候释放资源多一个ResultSet 结果集,添加
修改都没有