相比于从数据库中直接获取数据库连接,使用数据库连接池的方式可以很大程度的提高数据库连接的效率。因此我们在实际开发中通常会采用数据库连接池的方式获取数据库的连接,在使用完成后这些资源再返还给数据库连接池。下面我们就来看一看常用的数据库连接池的简单的方法。
使用DBCP方式
话不多说,直接上代码。这里仅仅是一个简单的效果呈现,所以只需要打印出一句话即可。
package jdbcpool;
import java.sql.Connection;
import org.apache.commons.dbcp.BasicDataSource;
/**
* 采用dbcp方式获得数据库连接池中的数据连接
* @author Summer
*
*/
public class Demo1 {
@org.junit.Test
public void Test() throws Exception {
BasicDataSource bds = new BasicDataSource();
bds.setDriverClassName("com.mysql.jdbc.Driver");
bds.setUrl("jdbc:mysql://localhost:3306/test");
bds.setUsername("root");
bds.setPassword("mysql");
try{
Connection conn = bds.getConnection();
System.out.println(conn);
}catch(Exception e){
throw new RuntimeException(e);
}
}
}
采用c3p0方式
package jdbcpool;
import java.sql.Connection;
import org.junit.Test;
import com.mchange.v2.c3p0.ComboPooledDataSource;
/**
* 采用c3p0方式获得数据库连接池中的数据连接
* @author Summer
*
*/
public class Demo2 {
@Test
public void test() throws Exception {
ComboPooledDataSource cpds = new ComboPooledDataSource();
cpds.setDriverClass("com.mysql.jdbc.Driver");
cpds.setJdbcUrl("jdbc:mysql://localhost:3306/test");
cpds.setUser("root");
cpds.setPassword("mysql");
Connection conn = cpds.getConnection();
System.out.println(conn);
}
}
两种方式的小总结
这两种方式都是实际开发中使用的数据库连接池开源技术。但是这两者有各自的优点及用途。一般来说在使用Hibernate框架的时候会采用c3p0方式。而使用Spring框架的时候通常会采用dbcp的方式。不能说二者孰优孰劣,我们要在实际的开发中选择合适的即可。