c3p0-config.xml配置
<?xml version=”1.0” encoding=”utf-8”?>
jdbc://mysql://localhost:3306/t_user
jdbc:mysql://localhost:3306/t_user
QueryRunner类
query(String sql,ResultSetHeadler rsh,Object[] params)方法
query(Connection conn,String sql,ResultSetHealer rsh,Object[] params)方法
query(Connection conn,String sql,Object[] params)方法
update(Connection conn,String sql,Object[] params)方法
update(Connection conn,String sql)方法
ResultSetHandler接口(常用的几种接口)
- ArrayHandler:把结果集中的第一行数据转成对象数组
ArrayListHeandler:把结果集中的每一行数据都转成一个对象数组,再将数组存放到List中
BaseResultSetHeadler:把结果集转换成其他对象的扩展
BaseHeadler:将结果集中的第一行数据封装单一个对应的javaBean实例中
BaseListHandler:将结果集中的每一行数据都封装到一个对应的JavaBean实例中,存放到List里
DBUtils事务处理
import java.sql.Connection;
import java.sql.SQLException;
import java.sql.DataSource;
import com.mchange.v2.c3p0.CpmbopooledDtaSource;
public class JDBCUtlis{
//创建一个ThreadLocal对象,以当前线程作为key
private static ThreadLocal<Connection>threadLocal=
new ThreadLocal<Connection>();
//从c3p0-config。xml配置文件中读取默认的数据库配置,生成c3p0数据源
private static DataSource ds=new CombopooleDataSource();
//返回数据源对象
public static DataSource getDataSource(){
return ds;
}
//获取c3p0数据库连接池中的对象
public static Connectoin getConnection()throws SQLException{
Connection conn=threadLocal.get();
if(conn=null){
conn=ds.getConnection();
threadLocal.set(conn);
}
return conn;
}
//开启事务
public static void startThransaction(){
try{
//获取连接
Connection conn=getConnection();
//开启事务
conn.setAutoCommit(false);
}cath (SQLException e){
e.printStackTrace();
}
}
//提交事务
public static void commit(){
try{
//获取连接
Connection conn=threadLocal.get();
//提交事务
if(conn!=null){
conn.commit();
}cath (SQLException e){
e.printStackTrace();
}
}
//回滚事务
public static void rollback(){
try{
//获取连接
Connection conn=threadLocal.get();
//回滚事务
if(conn!=null){
conn.rollback();
}cath (SQLException e){
e.printStackTrace();
}
}
//关闭数据库连接,释放资源
public static void close(){
//获取连接
Connection conn=threadLocal.get();
if(conn!=null){
conn.close();
}cath (SQLException e){
e.printStackTrace();
}finally{
//从集合中移除当前绑定的连接
threadLocal.remove();
conn=null;
}
}
}
}