java开发中的数据库连接池工具
2017-01-20 10:06
429 查看
dbcp连接
//有配置文件才可以用
try {
//1)使用工厂类来创建dbcp连接池对象(读取配置文件方式)
Properties prop = new Properties();
//使用类路径读取配置文件
InputStream in = Demo1.class.getResourceAsStream("/jdbc.properties");
//加载配置文件
prop.load(in);
BasicDataSource bds = (BasicDataSource)BasicDataSourceFactory.createDataSource(prop);
/**
* 读取jdbc.properties文件内容
* dbcp可以自动识别每个配置信息,但是约定前提: 配置文件的key名称和设置方法的名称保持一致!!!
*/
//从连接池中获取连接
for(int i=1;i<=13;i++){
Connection conn = bds.getConnection(); //注意: 这里返回的Connection对象,不是原来的Connection,而是代理后的Connection对象
System.out.println(conn);
//注意: 使用连接池,记住释放连接
/* if(i==3){
conn.close();// 把连接对象放回连接池中的。连接池中最大能够保存最大连接数的连接对象
}*/
}
} catch (Exception e) {
e.printStackTrace();
}
}
jdbc.properties配置信息:
<bean id="dataSource"
class="org.apache.commons.dbcp.BasicDataSource"
destroy-method="close">
<property name="driverClassName" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://192.168.0.109:3306/test?useUnicode=true&characterEncoding=UTF-8"/>
<property name="username" value="root"/>
<property name="password" value="root"/>
<!--maxActive: 最大连接数量-->
<property name="maxActive" value="150"/>
<!--minIdle: 最小空闲连接-->
<property name="minIdle" value="5"/>
<!--maxIdle: 最大空闲连接-->
<property name="maxIdle" value="20"/>
<!--initialSize: 初始化连接-->
<property name="initialSize" value="30"/>
<!--removeAbandoned: 是否自动回收超时连接-->
<property name="removeAbandoned" value="true"/>
<!--removeAbandonedTimeout: 超时时间(以秒数为单位)-->
<property name="removeAbandonedTimeout" value="10"/>
<!--maxWait: 超时等待时间以毫秒为单位 1000等于60秒-->
<property name="maxWait" value="1000"/>
<!-- 在空闲连接回收器线程运行期间休眠的时间值,以毫秒为单位. -->
<property name="timeBetweenEvictionRunsMillis" value="10000"/>
<!-- 在每次空闲连接回收器线程(如果有)运行时检查的连接数量 -->
<property name="numTestsPerEvictionRun" value="10"/>
</bean>
--------------------------------------------------------------
c3p0连接
/**
* 使用xml配置文件读取c3p0的方法
* 注意:
* 1)需要把一个名称为c3p0-config.xml文件放在src目录下,c3p0会自动读取这个文件。
* 2)xml配置文件中属性名称和手动设置方法名保持一致!!!!c3p0则会自动读取
*/
//ComboPooledDataSource cds = new ComboPooledDataSource();//默认配置为mysql的
ComboPooledDataSource cds = new ComboPooledDataSource("oracle");//非默认的可如此选择数据库
//2)获取连接
for(int i=1;i<=13;i++){
Connection conn = cds.getConnection();
System.out.println(conn);
//关闭第3个
if(i==3){
conn.close();//本质是把连接对象放回连接池中
}
}
配置文件c3p0-config.xml的基本连接配置信息:
<c3p0-config>
<!-- 使用默认的配置读取连接池对象 -->
<default-config>
<!-- 连接参数 -->
<property name="driverClass">com.mysql.jdbc.Driver</property>
<property name="jdbcUrl">jdbc:mysql://localhost:3306/sitechecker</property>
<property name="user">root</property>
<property name="password">root</property>
<!-- 连接池参数 -->
<property name="initialPoolSize">5</property>
<property name="maxPoolSize">8</property>
<property name="checkoutTimeout">3000</property>
</default-config>
</c3p0-config>
//有配置文件才可以用
try {
//1)使用工厂类来创建dbcp连接池对象(读取配置文件方式)
Properties prop = new Properties();
//使用类路径读取配置文件
InputStream in = Demo1.class.getResourceAsStream("/jdbc.properties");
//加载配置文件
prop.load(in);
BasicDataSource bds = (BasicDataSource)BasicDataSourceFactory.createDataSource(prop);
/**
* 读取jdbc.properties文件内容
* dbcp可以自动识别每个配置信息,但是约定前提: 配置文件的key名称和设置方法的名称保持一致!!!
*/
//从连接池中获取连接
for(int i=1;i<=13;i++){
Connection conn = bds.getConnection(); //注意: 这里返回的Connection对象,不是原来的Connection,而是代理后的Connection对象
System.out.println(conn);
//注意: 使用连接池,记住释放连接
/* if(i==3){
conn.close();// 把连接对象放回连接池中的。连接池中最大能够保存最大连接数的连接对象
}*/
}
} catch (Exception e) {
e.printStackTrace();
}
}
jdbc.properties配置信息:
<bean id="dataSource"
class="org.apache.commons.dbcp.BasicDataSource"
destroy-method="close">
<property name="driverClassName" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://192.168.0.109:3306/test?useUnicode=true&characterEncoding=UTF-8"/>
<property name="username" value="root"/>
<property name="password" value="root"/>
<!--maxActive: 最大连接数量-->
<property name="maxActive" value="150"/>
<!--minIdle: 最小空闲连接-->
<property name="minIdle" value="5"/>
<!--maxIdle: 最大空闲连接-->
<property name="maxIdle" value="20"/>
<!--initialSize: 初始化连接-->
<property name="initialSize" value="30"/>
<!--removeAbandoned: 是否自动回收超时连接-->
<property name="removeAbandoned" value="true"/>
<!--removeAbandonedTimeout: 超时时间(以秒数为单位)-->
<property name="removeAbandonedTimeout" value="10"/>
<!--maxWait: 超时等待时间以毫秒为单位 1000等于60秒-->
<property name="maxWait" value="1000"/>
<!-- 在空闲连接回收器线程运行期间休眠的时间值,以毫秒为单位. -->
<property name="timeBetweenEvictionRunsMillis" value="10000"/>
<!-- 在每次空闲连接回收器线程(如果有)运行时检查的连接数量 -->
<property name="numTestsPerEvictionRun" value="10"/>
</bean>
--------------------------------------------------------------
c3p0连接
/**
* 使用xml配置文件读取c3p0的方法
* 注意:
* 1)需要把一个名称为c3p0-config.xml文件放在src目录下,c3p0会自动读取这个文件。
* 2)xml配置文件中属性名称和手动设置方法名保持一致!!!!c3p0则会自动读取
*/
//ComboPooledDataSource cds = new ComboPooledDataSource();//默认配置为mysql的
ComboPooledDataSource cds = new ComboPooledDataSource("oracle");//非默认的可如此选择数据库
//2)获取连接
for(int i=1;i<=13;i++){
Connection conn = cds.getConnection();
System.out.println(conn);
//关闭第3个
if(i==3){
conn.close();//本质是把连接对象放回连接池中
}
}
配置文件c3p0-config.xml的基本连接配置信息:
<c3p0-config>
<!-- 使用默认的配置读取连接池对象 -->
<default-config>
<!-- 连接参数 -->
<property name="driverClass">com.mysql.jdbc.Driver</property>
<property name="jdbcUrl">jdbc:mysql://localhost:3306/sitechecker</property>
<property name="user">root</property>
<property name="password">root</property>
<!-- 连接池参数 -->
<property name="initialPoolSize">5</property>
<property name="maxPoolSize">8</property>
<property name="checkoutTimeout">3000</property>
</default-config>
</c3p0-config>
相关文章推荐
- 程序开发工具(Java反编译及Linux等)与调试技巧(eclipse,linux)部分数据库插件
- 用Java开发的MySQL,Oracle,PostgreSQL,mongoDB 数据库web管理工具软件
- Java开发工具之我见(补)
- 自建工具集开发文档------数据库操作(1.0.0.1)
- 图解Java开发工具JBuilder 9.0
- 扩展Eclipse的Java开发工具(二)
- 破解java Struts Web Application开发工具 scioworks Camino
- 扩展Eclipse的Java开发工具(四)
- [原创]在JAVA环境下建立数据库连接池
- Oracle推出新版Java开发工具
- 扩展Eclipse的Java开发工具(三)
- ASE12.5数据库内嵌JAVA开发指南
- 十四种Java开发工具点评
- 群雄逐鹿 十四种Java开发工具点评
- 群雄逐鹿 十四种Java开发工具点评
- 免费的 Java GUI 开发工具 Netbeans 介绍
- Sun发布更精简开发工具Java Studio Creator
- 图解Java开发工具JBuilder 9.0(一)
- java初学者常用开发工具介绍