学习JavaWeb之使用c3p0连接数据库–MySQL
首先在你创建的JavaWeb项目中导入c3p0的jar包,如下图中的c3p0-0.9.1.2.jar,eclipse中导入的时候直接将jar包复制到 lib 目录下。
在src目录下创建 c3p0-config.xml 文件,配置连接池。
- 配置内容如下:
- 这里注意的是
<name-config name="mvcapp">
这里的name属性是你只有获取数据源需要用的。
- 这里注意的是
- 代码如下:
- 配置内容如下:
<?xml version="1.0" encoding="UTF-8"?>
<c3p0-config>
<!-- This app is massive! -->
<!-- 这里的 name 是后来获取数据源的时候使用的 -->
<named-config name="mvcapp">
<property name="driverClass">com.mysql.jdbc.Driver</property>
<property name="jdbcUrl">jdbc:mysql://localhost:3306/testjdbc</property>
<property name="user">root</property>
<property name="password">123456</property>
<!-- 如果连接不够的话,一次问数据库要多少个连接 -->
<property name="acquireIncrement">5</property>
<!-- 初始化的个数 -->
<property name="initialPoolSize">10</property>
<!-- 最小连接数 -->
<property name="minPoolSize">10</property>
<!-- 最大连接数 -->
<property name="maxPoolSize">1000</property>
<!-- intergalactoApp adopts a different approach to configuring statement
caching -->
<!-- 最多的Statements -->
<property name="maxStatements">20</property>
<!-- 一个连接可以使用的Statements的数量 -->
<property name="maxStatementsPerConnection">5</property>
</named-config>
</c3p0-config>
最后创建一个Java类:
- 这里需要注意的几点是:
- 必须在静态代码块中获取到数据源;
- 初始化时的参数就是你在c3p0-config.xml文件中设置的
<name-config name="mvcapp">
中name 的属性值。
- 这里需要注意的几点是:
/**
* JDBC的操作工具类 获取数据源连接数据库
*
* @author ASUS
*
*/
public class JdbcUtils {
// 为什么是静态的,因为想让数据源只有一份就可以了
private static ComboPooledDataSource dataSource = null;
static {
// 数据源只能被初始化一次
dataSource = new ComboPooledDataSource("mvcapp");
}
// // 获得数据源
// public static DataSource getDataSource() {
// return dataSource;
// }
/**
* 返回数据源的一个Connection对象
*
* @return
* @throws SQLException
*/
public static Connection getConnection() throws SQLException {
return dataSource.getConnection();
}
public static void releaseConnection(Connection connection) {
try {
if (connection != null) {
connection.close();
}
} catch (SQLException e) {
e.printStackTrace();
System.out.println("Connection 连接关闭异常");
}
}
}