dbutils:
是apache组织的一个工具类,jdbc的框架,更方便我们使用
使用步骤:
1.导入jar包(commons-dbutils-1.4.jar)
2.创建一个queryrunner类
queryrunner作用:操作sql语句
构造方法:
new QueryRunner(Datasource ds); // 这个DataSource的对象引用需要自己创建一个DataSourceUtils工具类,然后直接调用里面的静态方法
3.编写sql
4.执行sql
query(..):执行r操作
update(...):执行cud操作
核心类或接口
QueryRunner:类名作用:操作sql语句
构造器:
new QueryRunner(Datasource ds);
注意:
底层帮我们创建连接,创建语句执行者 ,释放资源.
常用方法:
query(..):
update(..):
// CURDDemo.java
package com.dbutils.curd;
import java.sql.SQLException;
import org.apache.commons.dbutils.DbUtils;
import org.apache.commons.dbutils.QueryRunner;
import org.junit.Test;
import com.utils.DataSourceUtils;
public class CURDDemo {
@Test
public void insert() throws SQLException {
// 1.创建queryrunner类
QueryRunner qr = new QueryRunner(DataSourceUtils.getDataSource()) ;
// 2.编写sql
String sql = "insert into category values(?,?)" ;
// 3.执行sql
qr.update(sql, "c201","厨房电器") ;
}
@Test
public void update() throws SQLException {
QueryRunner qr = new QueryRunner(DataSourceUtils.getDataSource()) ;
String sql = "update category set cname = ? where cid = ?";
qr.update(sql,"Tcl","c001") ;
}
}
/**
* DataSourceUtils.java
* 为CURDDemo类中QueryRunner函数提供引用参数
* 并且在底层自动创建连接,创建语句执行者,释放资源
*
*/
package com.utils;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import javax.sql.DataSource;
import com.mchange.v2.c3p0.ComboPooledDataSource;
public class DataSourceUtils {
private static ComboPooledDataSource ds = new ComboPooledDataSource() ;
/**
* 获取数据源
* @return 连接池
*/
public static DataSource getDataSource() {
return ds ;
}
/**
* 获取连接
* @return 连接
* @throws SQLException
*/
public static Connection getConnection() throws SQLException {
return ds.getConnection() ;
}
/**
* 释放资源
* @param conn
* @param st
* @param rs
*/
public static void closeResource(Connection conn,Statement st,ResultSet rs) {
closeRs(rs) ;
closeSt(st) ;
closeConn(conn) ;
}
/**
* 释放连接
* @param conn
*/
public static void closeConn(Connection conn) {
if(conn != null) {
try {
conn.close() ;
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
conn = null ;
}
}
/**
* 释放语句执行者
* @param st
*/
public static void closeSt(Statement st) {
if(st != null) {
try {
st.close() ;
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
st = null ;
}
}
/**
* 释放结果集
* @param rs
*/
public static void closeRs(ResultSet rs) {
if(rs != null) {
try {
rs.close() ;
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
rs = null ;
}
}
}