数据库连接池的代码实例(DHCP、C3P0)
来源:互联网 发布:逆战天梯卡数据不扣分 编辑:程序博客网 时间:2024/05/28 15:07
数据库连接池的代码示例
1、DHCP数据库连接池,这是apache的一个项目,凡是数据库连接池都要实现javax.sql.DataSource接口,换句话说,实现了这个借口的类就是一个数据库连接池。
代码如下:
package com.test.dhcp;import java.sql.Connection;import java.sql.SQLException;import org.apache.commons.dbcp.BasicDataSource;public class JdbcUtils { public static void main(String[] args) { BasicDataSource dataSource = new BasicDataSource(); dataSource.setUrl("jdbc:mysql://localhost:3306/mysql"); dataSource.setDriverClassName("com.mysql.jdbc.Driver"); dataSource.setUsername("root"); dataSource.setPassword("123456"); Connection conn = null; try { conn = dataSource.getConnection(); } catch (SQLException e) { e.printStackTrace(); } System.out.println(conn); }}
数据库连接池的close()方法的执行效果和mysql提供的实现类的方法有所不同,这里用到了装饰者模式。加强了close()方法,在调用该方法时会把数据库连接归还给连接池。
2、C3P0数据库连接池
2.1第一种代码实现方式:
package com.test.dhcp;import java.beans.PropertyVetoException;import java.sql.Connection;import java.sql.SQLException;import com.mchange.v2.c3p0.ComboPooledDataSource;public class Demo2 { public static void main(String[] args) { ComboPooledDataSource dataSource = new ComboPooledDataSource(); try { dataSource.setDriverClass("com.mysql.jdbc.Driver"); dataSource.setJdbcUrl("jdbc:mysql://localhost:3306/cctrace"); dataSource.setUser("root"); dataSource.setPassword("123456"); Connection conn = dataSource.getConnection(); System.out.println(conn); } catch (PropertyVetoException e) { e.printStackTrace(); } catch (SQLException e) { e.printStackTrace(); } }}
2.1第二种代码实现方式:
在src路径下创建一个xml文件,文件名为c3p0-config.xml ,必须这么命名。文件内容为:
<?xml version="1.0" encoding="UTF-8"?><c3p0-config> <default-config> <property name="jdbcUrl">jdbc:mysql://localhost:3306/cctrace</property> <property name="driverClass">com.mysql.jdbc.Driver</property> <property name="user">root</property> <property name="password">123456</property> </default-config></c3p0-config>
这个dataSource的一些个别的属性(最大连接数等自行配置)。
获取链接部分代码如下:
package com.test.dhcp;import java.sql.Connection;import java.sql.SQLException;import com.mchange.v2.c3p0.ComboPooledDataSource;public class Demo3 { public static void main(String[] args) { ComboPooledDataSource dataSource = new ComboPooledDataSource(); try { Connection conn = dataSource.getConnection(); System.out.println(conn); } catch (SQLException e) { e.printStackTrace(); } }}
如果配置了多个数据库,那么可以使用命名的方式来获取该连接
xml文件配置路径同上,文件内容如下:
<?xml version="1.0" encoding="UTF-8"?><c3p0-config> <default-config> <property name="jdbcUrl">jdbc:mysql://localhost:3306/cctrace</property> <property name="driverClass">com.mysql.jdbc.Driver</property> <property name="user">root</property> <property name="password">123456</property> </default-config> <named-config name="bigData"> <property name="jdbcUrl">jdbc:mysql://localhost:3306/bigData</property> <property name="driverClass">com.mysql.jdbc.Driver</property> <property name="user">root</property> <property name="password">123456</property> </named-config></c3p0-config>
获取连接部分的代码如下:
package com.test.dhcp;import java.sql.Connection;import java.sql.SQLException;import com.mchange.v2.c3p0.ComboPooledDataSource;public class Demo3 { public static void main(String[] args) { ComboPooledDataSource dataSource = new ComboPooledDataSource("bigData"); try { Connection conn = dataSource.getConnection(); System.out.println(conn); } catch (SQLException e) { e.printStackTrace(); } }}
阅读全文
0 0
- 数据库连接池的代码实例(DHCP、C3P0)
- c3p0数据库连接池实例
- c3p0数据库连接池实例
- c3p0数据库连接池介绍+实例
- 使用C3P0数据库连接池代码
- 数据库连接池(C3P0)
- java 使用c3p0数据库连接池配置实例
- Java c3p0 oracle 数据库连接池 代码实现 (二)
- Java c3p0 oracle 数据库连接池 代码实现 (一)
- JDBC_数据库连接池(二) DNCP与C3P0的使用方法及代码演示
- 数据库连接池c3p0 的用法
- 数据库连接池c3p0 的用法
- c3p0数据库连接池的使用
- c3p0数据库连接池的使用
- c3p0数据库连接池的使用
- 数据库连接池C3P0的学习
- c3p0数据库连接池的使用
- C3P0数据库连接池的学习
- commons pool2对象池入门
- SSM整合手机联系人
- LRUCache,DiskLrucache,四种引用的区别,以及图片二次采样,三级缓存小知识
- 剑指offer面试题61 按之字形顺序打印二叉树(java实现)
- AlarmManager与NotificationManager
- 数据库连接池的代码实例(DHCP、C3P0)
- 设计模式--备忘录模式
- G
- java学习_小程序(四线程断点网络资源下载,即时进度反馈)
- java求解一给定数字的二进制表达中的1的个数
- ctrl+v粘贴快捷键突然不能使用的原因及解决方案
- Linux学习总结(37)——CentOS7下Firewall防火墙配置用法详解
- Square HDU
- What Is Your Grade? HDU