DBCP
什么是?
DBCP(DataBase Connection Pool)数据库连接池,是java数据库连接池的一种,由Apache开发,通过数据库连接池,可以让程序自动管理数据库连接的释放和断开
怎么用?
1. 导入jar包 commons-dbcp.jar,commons-pool.jar
2. 不使用配置文件方式
BasicDataSource dataSource = new BasicDataSource();
dataSource.setDriverClassName("com.mysql.jdbc.Driver");
dataSource.setUrl("jdbc:mysql://localhost/users");
dataSource.setUsername("root");
dataSource.setPassword("root");
conn = dataSource.getConnection();
String sql = "select * from user";
pstmt = conn.prepareStatement(sql);
...
3. 使用配置文件方式。
1. 在 src 下定义配置文件 dbcp.properties. 内容如下:
#连接设置
driverClassName=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/jdbc
username=root
password=root
...
2. 使用代码读取配置文件,即可获取连接池
Properties properties = new Properties();
properties.load(new FileInputStream("src/dbcp.properties"));
DataSource dataSource = BasicDataSourceFactory.createDataSource(properties);
conn = dataSource.getConnection();
String sql = "select * from user";
pstmt = conn.prepareStatement(sql);
...
C3P0
什么是?
C3P0是一个开源的JDBC连接池,它实现了数据源和JNDI绑定,支持JDBC3规范和JDBC2的标准扩展。目前使用它的开源项目有Hibernate,Spring等。
怎么用?
1. 拷贝jar 文件 c3p0-0.9.1.2.jar
2. 不使用配置文件方式
ComboPooledDataSource dataSource = new ComboPooledDataSource();
dataSource.setDriverClass("com.mysql.jdbc.Driver");
dataSource.setJdbcUrl("jdbc:mysql://localhost/users");
dataSource.setUser("root");
dataSource.setPassword("root");
conn = dataSource.getConnection();
String sql = "select * from user";
pstmt = conn.prepareStatement(sql);
...
3. 使用配置文件方式。
> c3p0的配置文件 支持 properties , 也支持 xml 方式。 不过开发中,一般使用xml方式来配置
1. src下, 创建xml文件,名为:c3p0-config.xml 注意此处,名字需要固定了。
<c3p0-config>
<default-config>
<property name="driverClass">com.mysql.jdbc.Driver</property>
<property name="jdbcUrl">jdbc:mysql://localhost/user</property>
<property name="user">root</property>
<property name="password">root</property>
<!-- 可选配置 -->
<property name="initialPoolSize">5</property>
</default-config>
</c3p0-config>
2. 代码中获取连接child对象
ComboPooledDataSource dataSource = new ComboPooledDataSource();