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">&lt;<span class="hljs-name">c3p0-config</span>&gt;</span>


      <span class="hljs-tag">&lt;<span class="hljs-name">default-config</span>&gt;</span>

              <span class="hljs-tag">&lt;<span class="hljs-name">property</span> <span class="hljs-attr">name</span>=<span class="hljs-string">"driverClass"</span>&gt;</span>com.mysql.jdbc.Driver <span class="hljs-tag">&lt;/<span class="hljs-name">property</span>&gt;</span>

              <span class="hljs-tag">&lt;<span class="hljs-name">property</span> <span class="hljs-attr">name</span>=<span class="hljs-string">"jdbcUrl"</span>&gt;</span>jdbc:mysql:///jt_db?characterEncoding=utf-8 
              <span class="hljs-tag">&lt;/<span class="hljs-name">property</span>&gt;</span>

              <span class="hljs-tag">&lt;<span class="hljs-name">property</span> <span class="hljs-attr">name</span>=<span class="hljs-string">"user"</span>&gt;</span>root <span class="hljs-tag">&lt;/<span class="hljs-name">property</span>&gt;</span>

              <span class="hljs-tag">&lt;<span class="hljs-name">property</span> <span class="hljs-attr">name</span>=<span class="hljs-string">"password"</span>&gt;</span>root <span class="hljs-tag">&lt;/<span class="hljs-name">property</span>&gt;</span>

  <span class="hljs-tag">&lt;/<span class="hljs-name">default-config</span>&gt;</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();