数据库的基本连接方法与连接池
1、 因为在一般程况下数据库的都是一个实例访问既可以,因此这个时候可以把类设计成单例模式,例:
public class DBUtil {
//设计构造函数为私有,不能被其他类创建实例,同时也不能被继承
private DBUtil(){}
private static DBUtil instance = null;
//提供一个外部创建的方法
public synchronized static DBUtil getDBUtilInstance(){
if(instance == null){
instance = new DBUtil();
}
return instance;
}
}
2、 加载数据库驱动,填入数据库驱动名字
Class.forName(""); 或者 DriverManager.registerDriver(new 一个驱动的名字);
3、 获得Connection对象
DriverManager.getConnection(URL , username , password);
数据库连接池:主要有两种,一是DBCP另一个是C3P0
DBCP: 需要导入两个jar包, commons-dbcp-1.2.2.jar 和 commons-pool.jar
1. 需要两个成员变量 BasicDataSource 和 DataSourceConnectionFactory
2. 创建BasicDataSource 对象,调用setUrl() setDriverClassName() setUsername() setPassword()方法设置jdbc相关信息
3. 可以选择设置连接池配置,调用函数 setInitialSize(20) ---设置初始连接数 setMaxActive(100) ---最大的获取连接数 setMinIdle(10) ---最小可用的空闲连接数 setMaxIdle() ---最大可用空闲连接数
4. 创建DataSourceConnectionFactory对象,并传入BasicDataSource 对象作为参数
5. 通过DataSourceConnectionFactory对象调用createConnection方法返回Connection
C3P0: 需要导入c3p0-0.9.1.jar包
1. 需要一个成员变量ComboPooledDataSource
2. 创建ComboPooledDataSource对象,调用setJdbcUrl() setUser() setPassword()方法设置jdbc相关信息
3. 设置连接池,调用setInitialPoolSize(30) setMaxPoolSize(100) setMinPoolSize(10)
4. 调用getConnection方法返回Connection对象
*** DBCP的效率较高,但是C3P0却比较稳定。因此,C3P0却是被普遍使用。