C3p0——数据库连接池
来源:互联网 发布:pl10空空导弹 知乎 编辑:程序博客网 时间:2024/05/18 01:47
- 实现原理
C3p0官网
实现原理
ComboPooledDataSource dataSource = new ComboPooledDataSource(); dataSource.setDriverClass("com.mysql.jdbc.Driver"); dataSource.setJdbcUrl("jdbc:mysql://127.0.0.1:3306/db_quartz"); dataSource.setUser("root"); dataSource.setPassword(""); // 可选项配置,如果不配置使用默认值 // 初始化时连接池中的连接池个数,默认为3,范围:[MinPoolSize,MaxPoolSize] // 如果小于MinPoolSize就取MinPoolSize,如果大于MaxPoolSize就取MaxPoolSize dataSource.setInitialPoolSize(8); // 最小的连接数,默认为3 dataSource.setMinPoolSize(4); // 当连接池中连接用完时,一次性增加的连接数,默认为3 dataSource.setAcquireIncrement(5); // 最大的连接数,默认为15 dataSource.setMaxPoolSize(20); // 最大的空闲时间,表示空闲连接的最大存活时间,默认为0,表示空闲连接永不过期,单位:秒 dataSource.setMaxIdleTime(5); // 最开始池中的连接数为0,当使用dataSource变量之后线程池开始初始化 System.out.println("连接数:"+dataSource.getNumConnections()); //停止一段时间等待初始化连接 Thread.sleep(1000); System.out.println("初始连接数:"+dataSource.getNumConnections()); Connection conn =dataSource.getConnection(); Connection conn2 =dataSource.getConnection(); System.out.println(MessageFormat.format("获取两个连接后,空闲的连接数:{0},正在使用的连接数:{1}", dataSource.getNumIdleConnections(), dataSource.getNumBusyConnections())); for(int i=0;i<8-2;i++) { Connection conn3 =dataSource.getConnection(); } System.out.println(MessageFormat.format("获取InitialPoolSize连接后,空闲的连接数:{0},正在使用的连接数:{1}", dataSource.getNumIdleConnections(), dataSource.getNumBusyConnections())); Connection conn3 =dataSource.getConnection(); //停止一段时间等待连接新建 Thread.sleep(1000); System.out.println(MessageFormat.format("获取InitialPoolSize+1连接后,空闲的连接数:{0},正在使用的连接数:{1}", dataSource.getNumIdleConnections(), dataSource.getNumBusyConnections())); for(int i=0;i<20-9;i++) { Connection conn4 =dataSource.getConnection(); } System.out.println(MessageFormat.format("获取MaxPoolSize连接后,空闲的连接数:{0},正在使用的连接数:{1}", dataSource.getNumIdleConnections(), dataSource.getNumBusyConnections())); Connection conn5 =dataSource.getConnection(); //此时连接池中没有接连,线程会一直等待空闲线程的出现 System.out.println(MessageFormat.format("获取MaxPoolSize+1连接后,空闲的连接数:{0},正在使用的连接数:{1}", dataSource.getNumIdleConnections(), dataSource.getNumBusyConnections()));
运行结果:
连接数:0初始连接数:8获取两个连接后,空闲的连接数:6,正在使用的连接数:2获取InitialPoolSize连接后,空闲的连接数:0,正在使用的连接数:8获取InitialPoolSize+1连接后,空闲的连接数:4,正在使用的连接数:9获取MaxPoolSize连接后,空闲的连接数:0,正在使用的连接数:20
阅读全文
0 0
- C3p0——数据库连接池
- 数据库连接池——dbcp和c3p0
- Java数据库连接池2——c3p0
- c3p0——开源数据库连接池(DataSource)
- JDBC学习笔记(8)——数据库连接池(dbcp&C3P0)
- Spring—数据库连接池C3P0、DBCP、Proxool详细配置
- JDBC学习笔记—数据库连接池(DBCP和C3P0)
- c3p0 数据库连接池配置
- 数据库连接池C3P0 小结
- 数据库连接池 c3p0
- c3p0数据库连接池dbutil
- 数据库连接池-C3P0
- c3p0数据库连接池实例
- 数据库连接池C3P0学习
- java c3p0数据库连接池
- C3P0数据库连接池源代码
- 数据库连接池C3P0学习
- C3p0-数据库连接池
- 一步一步制作yaffs/yaffs2根文件系统(七)---纠正前边出现的错误
- Android初级,MediaPlayer播放音乐,进度条滑动及唱片转动功能实现
- Retrofit 上传文件
- How to setup Juniper vMX environment
- Docker安装php(使用docker pull方法)
- C3p0——数据库连接池
- 可视化图代码汇总
- STM32关于IAR和Keil中如何查看代码段的大小
- win10系统和压缩内存占用80端口 PID4
- DBMS_METADATA.GET_DDL 获取数据库里面的ddl语句
- unity 在 iOS 层级
- mysq截取字符串的办法
- 【lct模板】bzoj2631: tree
- 设置防火墙firewall