【MySQL】mysql连接池( 二 )


5、连接池使用流程
(1)导入依赖(这里以c3p0为例)
jdbc依赖
c3p0依赖
com.mchangec3p00.9.5.3
打日志依赖
log4jlog4j1.2.12
(2)参数配置
目录下的配置文件(db.)
jdbcDriver=com.mysql.jdbc.DriverjdbcUrl=jdbc:mysql://127.0.0.1:3306/school?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=Asia/ShanghaiuserName=rootpassword=123456minPoolSize=5maxPoolSize=20initialPoolSize=5maxIdleTime=240
(3)获取连接池对象
(4)请求数据库连接
(.java)
public class MyC3p0 {//数据源对象private ComboPooledDataSource dataSource;//加载驱动private MyC3p0() {dataSource = new ComboPooledDataSource();FileInputStream in = null;//节点流try {Properties pro = new Properties();in = new FileInputStream("D:main\\resources\\db.properties");//配置文件位置pro.load(in);//特点和处理流一样dataSource.setDriverClass(pro.getProperty("jdbcDriver"));dataSource.setJdbcUrl(pro.getProperty("jdbcUrl"));dataSource.setUser(pro.getProperty("userName"));dataSource.setPassword(pro.getProperty("password"));dataSource.setMaxIdleTime(Integer.parseInt(pro.getProperty("maxIdleTime")));} catch (FileNotFoundException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();} catch (PropertyVetoException e) {e.printStackTrace();}}private static class Holder {private static MyC3p0 c3p0 = new MyC3p0();}public static MyC3p0 getMyC3p0() {return MyC3p0.Holder.c3p0;}public Connection getConnection() throws SQLException {return dataSource.getConnection(); //获取连接}}
(5)创建发送SQL请求的对象 , 进行相关操作
(6)关闭连接
测试代码(.java):
//模拟用户使用Mysql连接public class C3p0App {public static void main(String[] args) {MyC3p0 c3p0 = MyC3p0.getMyC3p0();PreparedStatement pre = null;Connection connection = null;try {connection = c3p0.getConnection();String sql = "select * from student where SID > ?";pre = connection.prepareStatement(sql);pre.setString(1, "01");ResultSet resultSet = pre.executeQuery();while (resultSet.next()) {//hashnext next-1System.out.println("SID:" + resultSet.getString(1) +"SName:" + resultSet.getString(2)+ "SAge:" + resultSet.getString(3)+ "SSex:" + resultSet.getString(4));}} catch (Exception e) {e.printStackTrace();} finally {try {pre.close();connection.close();//将连接归还给链接池} catch (SQLException e) {e.printStackTrace();}}}}
6、常见的连接池 c3p0
C3P0是一个开源的JDBC连接池 , 它实现了数据源和JNDI绑定 , 支持JDBC3规范和JDBC2的标准扩展 。目前使用它的开源项目有、等 。
1、c3p0常用配置参数介绍
最基础的参数配置:
(1) : 数据库驱动(比如mysql , 或者数据库的驱动)
(2): 数据库连接地址(例如jdbc:mysql://:3306/)
(3)user:数据库用户名
(4):和数据库用户名对应的数据库密码
基础的参数配置:
管理池大小和连接时间的配置:
2、代码使用
上面有
druid
druid为阿里巴巴的数据源 , (数据库连接池) , 集合了c3p0、dbcp、等连接池的优点 , 还加入了日志监控 , 有效的监控DB池连接和SQL的执行情况 。
1、druid常用配置参数介绍
配置
缺省值
说明
name
配置这个属性的意义在于 , 如果存在多个数据源 , 监控的时候可以通过名字来区分开来 。