前言
上次利用c3p0封装了数据库操作工具类,但没有用到连接池,在处理大数据量访问的时候那种方法事不好的,最好使用连接池,本文将配置连接池的源码贴出。
1. 准备
下载的包均是此时最新包
2. c3p0连接池配置
-
添加依赖
将包导入,并添加依赖。如下图操作即可
-
创建c3p0-config.xml
在src文件夹下创建c3p0-config.xml,文件名不能改,只能是这个。 配置源码如下:
复制代码 10 30 100 10 200 com.mysql.cj.jdbc.Driver jdbc:mysql://localhost:3306/bigtest?serverTimezone=GMT root rootroot 10 30 100 10 200 3000 2 0 1000 false Test false 60 200
3. JDBC连接
创建JDBCUtil.java 源码如下:
package com.maolin;import com.mchange.v2.c3p0.ComboPooledDataSource;import java.sql.Connection;import java.sql.SQLException;import javax.sql.DataSource;public class JDBCUtil { private static DataSource dataSource=null; static{ dataSource=new ComboPooledDataSource("mysql"); } /** * 获取数据库连接 * @return */ public static Connection getConnection(){ Connection conn=null; try { conn=dataSource.getConnection(); } catch (SQLException e) { e.printStackTrace(); } return conn; } /** * 关闭数据库连接 * @param conn */ public static void closeConn(Connection conn){ try { if(conn!=null && conn.isClosed()){ conn.close(); } } catch (SQLException e) { e.printStackTrace(); } }}复制代码
4. 测试
测试:TestJdbc.java
package com.maolin;import java.sql.Connection;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.SQLException;import com.maolin.JDBCUtil;public class TestJdbc {public static void main(String[] args){ Connection conn=JDBCUtil.getConnection(); System.out.println(conn); try { PreparedStatement stmt=conn.prepareStatement("select * from member"); ResultSet re=stmt.executeQuery(); while(re.next()){ String name=re.getString(3); System.out.println(name); } } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } }}复制代码
5. 小结
虽然这个看起来不难,但如果不仔细研究,最后还是弄不出来,差点就放弃了,不过最后还是弄出来了,蛮开心的。 C3P0是一个开源的JDBC,它实现了数据源和JNDI绑定,支持JDBC3规范和JDBC2的标准扩展。目前使用它的开源项目有Hibernate,Spring等。