1、JDBC工具类:
package com.ljl.basedao;
import java.sql.Driver;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Connection;
public class JdbcUtil {
private static final String url="jdbc:mysql:///instance";
private static final String user="root";
private static final String password="root";
//用变量的副本(线程)去得到一个连接
private static final ThreadLocal<Connection> threadLocal;
static{
//创建一个变量的副本(线程)
threadLocal=new ThreadLocal<Connection>();
//第一步:获得驱动
try {
Class.forName("com.mysql.jdbc.Driver");
} catch (ClassNotFoundException e) {
throw new RuntimeException("加载驱动失败");
}
}
//第二步:获得连接
public static Connection getConnection() throws SQLException{
Connection connection=threadLocal.get();
if (connection!=null) {
return connection;
}
connection=DriverManager.getConnection(url, user, password);
return connection;
}
//第三步:关闭连接
public static void closeConnection() throws SQLException{
Connection connection=threadLocal.get();
if(connection!=null){
connection.close();
threadLocal.remove();
}
}
}
2、使用c3p0常量池的JDBC工具类:
package com.ljl.human.utils;
import java.beans.PropertyVetoException;
import org.apache.commons.dbutils.QueryRunner;
import com.mchange.v2.c3p0.ComboPooledDataSource;
public class JdbcUtils {
private static ComboPooledDataSource dataSource=null;
static {
dataSource=new ComboPooledDataSource();
try {
dataSource.setDriverClass("com.mysql.jdbc.Driver");
} catch (PropertyVetoException e) {
throw new RuntimeException("加载驱动程序失败....");
}
dataSource.setJdbcUrl("jdbc:mysql://localhost:3308/human");
dataSource.setUser("root");
dataSource.setPassword("123456");
}
public static QueryRunner getQueryRunner() {
return new QueryRunner(dataSource);
}
}