java 数据库连接池c3p0
首先下载 c3p0 的 jar 包
https://mvnrepository.com/search?q=c3p0
导入 jar 包到 eclipse
将 c3p0 的 jar 包放到 eclipse 中,单击右键,选择 build path , 在选择 add jars
创建连接池对象ComboPooledDataSource cpd= new ComboPooledDataSource();
设置连接参数
方法一
使用静态代码块来初始化参数(不推荐)如果数据库发生改变,源文件需要重新编写编译,项目需要重新部署
static ComboPooledDataSource cpd= new ComboPooledDataSource();
static {
try {
cpd.setDriverClass("com.mysql.jdbc.Driver");
cpd.setJdbcUrl("jdbc:mysql:///users?characterEnconding=utf-8");
cpd.setUser("root");
cpd.setPassword("123456");
} catch (PropertyVetoException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
方法二
在 src 的目录下建立 c3p0.propertise 文件
c3p0.driverClass=com.mysql.jdbc.Driver
c3p0.jdbcUrl=jdbc:mysql:///users?characterEnconding=utf-8
c3p0.user=root
c3p0.password=123456
方法三
在 src 目录下建立 c3po-config.xml 文件
<?xml version="1.0" encoding="UTF-8"?>
<span class="hljs-tag"><<span class="hljs-name">c3p0-config</span>></span>
<span class="hljs-tag"><<span class="hljs-name">default-config</span>></span>
<span class="hljs-tag"><<span class="hljs-name">property</span> <span class="hljs-attr">name</span>=<span class="hljs-string">"driverClass"</span>></span>com.mysql.jdbc.Driver <span class="hljs-tag"></<span class="hljs-name">property</span>></span>
<span class="hljs-tag"><<span class="hljs-name">property</span> <span class="hljs-attr">name</span>=<span class="hljs-string">"jdbcUrl"</span>></span>jdbc:mysql:///jt_db?characterEncoding=utf-8
<span class="hljs-tag"></<span class="hljs-name">property</span>></span>
<span class="hljs-tag"><<span class="hljs-name">property</span> <span class="hljs-attr">name</span>=<span class="hljs-string">"user"</span>></span>root <span class="hljs-tag"></<span class="hljs-name">property</span>></span>
<span class="hljs-tag"><<span class="hljs-name">property</span> <span class="hljs-attr">name</span>=<span class="hljs-string">"password"</span>></span>root <span class="hljs-tag"></<span class="hljs-name">property</span>></span>
<span class="hljs-tag"></<span class="hljs-name">default-config</span>></span>
</c3p0-config>
调用连接池对象
// 创建连接池对象
ComboPooledDataSource cpd= new ComboPooledDataSource();
public void find() throws Exception {
// 获取连接池连接
Connection conn = cpd.getConnection();
// 创建传输器
PreparedStatement ps = conn.prepareStatement("select * from user");
<span class="hljs-comment">//结果集</span>
<span class="hljs-type">ResultSet</span> <span class="hljs-variable">rs</span> <span class="hljs-operator">=</span> ps.executeQuery();
<span class="hljs-keyword">while</span>(rs.next()) {
rs.getInt(<span class="hljs-number">1</span>);<span class="hljs-comment">//获取的行的第一列</span>
rs.getString(<span class="hljs-string">"id"</span>);<span class="hljs-comment">//获取行的id列</span>
}
}
连接池对象的 close 方发被改造了,不是释放连接而是将连接还给连接池
rs.close();
ps.close();
conn.close();