Helper threads: 5
点我下载本文工程代码
在jdbc中使用BoneCP连接池
package com.bonecp;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import com.jolbox.bonecp.BoneCP;
import com.jolbox.bonecp.BoneCPConfig;
/**
* @author sxyx2008
*
*/
public class ExampleJDBC {
public static void main(String[] args) {
BoneCP connectionPool = null;
Connection connection = null;
try {
// load the database driver (make sure this is in your classpath!)
Class.forName("com.mysql.jdbc.Driver");
} catch (Exception e) {
e.printStackTrace();
return;
}
try {
// setup the connection pool
BoneCPConfig config = new BoneCPConfig();
config.setJdbcUrl("jdbc:mysql://localhost:3306/demo"); // jdbc url specific to your database, eg jdbc:mysql://127.0.0.1/yourdb
config.setUsername("root");
config.setPassword("root");
//设置每60秒检查数据库中的空闲连接数
config.setIdleConnectionTestPeriod(60);
//设置连接空闲时间
config.setIdleMaxAge(240);
//设置每个分区中的最大连接数 30
config.setMaxConnectionsPerPartition(30);
//设置每个分区中的最小连接数 10
config.setMinConnectionsPerPartition(10);
//当连接池中的连接耗尽的时候 BoneCP一次同时获取的连接数
config.setAcquireIncrement(5);
//连接释放处理
config.setReleaseHelperThreads(3);
//设置分区 分区数为3
config.setPartitionCount(3);
//设置配置参数
connectionPool = new BoneCP(config); // setup the connection pool
connection = connectionPool.getConnection(); // fetch a connection
if (connection != null){
System.out.println("Connection successful!");
Statement stmt = connection.createStatement();
ResultSet rs = stmt.executeQuery(" select * from person "); // do something with the connection.
while(rs.next()){
System.out.println(rs.getString(1)); // should print out "1"'
System.out.println(rs.getString(2)); // should print out "1"'
}
}
connectionPool.shutdown(); // shutdown connection pool.
} catch (SQLException e) {
e.printStackTrace();
} finally {
if (connection != null) {
try {
connection.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
}
使用DataSource
package com.bonecp;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import com.jolbox.bonecp.BoneCPDataSource;
public class ExampleDataSource {
public static void main(String[] args) {
Connection connection = null;
try {
Class.forName("com.mysql.jdbc.Driver");
} catch (Exception e) {
e.printStackTrace();
}
BoneCPDataSource dataSource=new BoneCPDataSource();
dataSource.setUsername("root");
dataSource.setPassword("root");
dataSource.setJdbcUrl("jdbc:mysql://localhost:3306/demo");
dataSource.setMaxConnectionsPerPartition(10);
dataSource.setMinConnectionsPerPartition(5);
dataSource.setIdleConnectionTestPeriod(60);
dataSource.setIdleMaxAge(240);
dataSource.setAcquireIncrement(5);
dataSource.setReleaseHelperThreads(3);
try {
connection=dataSource.getConnection();
if (connection != null){
System.out.println("Connection successful!");
Statement stmt = connection.createStatement();
ResultSet rs = stmt.executeQuery(" select * from person "); // do something with the connection.
while(rs.next()){
System.out.println(rs.getString(1)); // should print out "1"'
System.out.println(rs.getString(2)); // should print out "1"'
}
}
} catch (SQLException e) {
e.printStackTrace();
}finally{
try {
connection.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
在Hibernate中使用BoneCP
在Hibernate中使用BoneCP除了需要上面提到的jar包之外,还需要下载一个名为bonecp-provider-0.7.0.jar的bonecp-provider的jar包,它的下载位置是:http://jolbox.com/bonecp/downloads/maven/com/jolbox/bonecp-provider/0.7.0/bonecp-provider-0.7.0.jar。
除此之外,还需要做如下配置:
-
-
<bean id="sessionFactory" class="org.springframework.orm.hibernate.LocalSessionFactoryBean" autowire="autodetect">
-
<property name="hibernateProperties">
-
<props>
-
<prop key="hibernate.connection.provider_class">com.jolbox.bonecp.provider.BoneCPConnectionProvider</prop>
-
<prop key="hibernate.connection.driver_class">com.mysql.jdbc.Driver</prop>
-
<prop key="hibernate.connection.url">jdbc:mysql://127.0.0.1/yourdb</prop>
-
<prop key="hibernate.connection.username">root</prop>
-
<prop key="hibernate.connection.password">abcdefgh</prop>
-
<prop key="bonecp.idleMaxAge">240</prop>
-
<prop key="bonecp.idleConnectionTestPeriod">60</prop>
-
<prop key="bonecp.partitionCount">3</prop>
-
<prop key="bonecp.acquireIncrement">10</prop>
-
<prop key="bonecp.maxConnectionsPerPartition">60</prop>
-
<prop key="bonecp.minConnectionsPerPartition">20</prop>
-
<prop key="bonecp.statementsCacheSize">50</prop>
-
<prop key="bonecp.releaseHelperThreads">3</prop>
-
</props>
-
</property>
-
</bean>
xml方式配置bonecp
<?xml version="1.0" encoding="UTF-8"?>
<bonecp-config>
<default-config>
<property name="jdbcUrl">jdbc:oracle:thin:@127.0.0.1:1521:orcl</property>
<property name="username">scott</property>
<property name="password">tiger</property>
<property name="partitionCount">3</property>
<property name="maxConnectionsPerPartition">30</property>
<property name="minConnectionsPerPartition">10</property>
<property name="acquireIncrement">3</property>
</default-config>
</bonecp-config>
连接代码
package com.bonecp;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import com.jolbox.bonecp.BoneCP;
import com.jolbox.bonecp.BoneCPConfig;
/**
* @author sxyx2008
*
*/
public class ExampleJDBC {
public static void main(String[] args) {
BoneCP connectionPool = null;
Connection connection = null;
try {
// load the database driver (make sure this is in your classpath!)
Class.forName("oracle.jdbc.driver.OracleDriver");
} catch (Exception e) {
e.printStackTrace();
return;
}
try {
// setup the connection pool
BoneCPConfig config = null;
try {
config = new BoneCPConfig("bonecp-config.xml");
} catch (Exception e) {
e.printStackTrace();
}
/*
config.setJdbcUrl("jdbc:oracle:thin:@127.0.0.1:1521:orcl"); // jdbc url specific to your database, eg jdbc:mysql://127.0.0.1/yourdb
config.setUsername("scott");
config.setPassword("tiger");
//设置每60秒检查数据库中的空闲连接数
config.setIdleConnectionTestPeriod(60);
//设置连接空闲时间
config.setIdleMaxAge(240);
//设置每个分区中的最大连接数 30
config.setMaxConnectionsPerPartition(30);
//设置每个分区中的最小连接数 10
config.setMinConnectionsPerPartition(10);
//当连接池中的连接耗尽的时候 BoneCP一次同时获取的连接数
config.setAcquireIncrement(5);
//连接释放处理
config.setReleaseHelperThreads(3);
//设置分区 分区数为3
config.setPartitionCount(3);
*/
//设置配置参数
connectionPool = new BoneCP(config); // setup the connection pool
long startTime=System.currentTimeMillis();
//创建100个连接
for (int i = 0; i < 100; i++) {
connection = connectionPool.getConnection(); // fetch a connection
}
long endtTime=System.currentTimeMillis();
System.out.println("-------->total seconds :"+(endtTime-startTime));
if (connection != null){
System.out.println("Connection successful!");
Statement stmt = connection.createStatement();
ResultSet rs = stmt.executeQuery(" select * from emp "); // do something with the connection.
while(rs.next()){
System.out.println(rs.getString(1)); // should print out "1"'
System.out.println(rs.getString(2)); // should print out "1"'
}
}
connectionPool.shutdown(); // shutdown connection pool.
} catch (SQLException e) {
e.printStackTrace();
} finally {
if (connection != null) {
try {
connection.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
}
点我下载本文工程代码
分享到:
相关推荐
Java中的BoneCP数据库连接池用法.doc
采用bonecp数据库连接池封装了Jdbc,当时也是网上下载了一份代码,发现不能用,只好自己修改代码,现在这个代码是可以直接运行的,测试用的Sql Server 2008,表很简单,就四个字段
Java数据库连接池 BoneCP
开源数据库连接池bonecp附教程;据说是最快的数据库连接池
java源码:Java数据库连接池 BoneCP.jar
基于java的开发源码-数据库连接池 BoneCP.zip 基于java的开发源码-数据库连接池 BoneCP.zip 基于java的开发源码-数据库连接池 BoneCP.zip 基于java的开发源码-数据库连接池 BoneCP.zip 基于java的开发源码-数据库...
基于Java的数据库连接池 BoneCP.zip
基于java的数据库连接池 BoneCP.zip
JAVA数据库连接池(C3P0,Druid,JNDI ,DBCP,Proxool,BoneCP) 源码包含各个数据库连接池的连接DEMO spring+mybatis+maven
BoneCP 是一个高性能的开源java数据库连接池实现库。它的设计初衷就是为了提高数据库连接池的性能,根据某些测试数据发现,BoneCP是最快的连接池。
一个比c3p0更快的数据库连接池,代码量少,简介,效率排行第一 比排行第二的连接池快25倍
数据库连接池BoneCP源码分析报告
基于Java的实例源码-数据库连接池 BoneCP.zip
数据库连接池,数据库连接池,数据库连接池,数据库连接池,
bonecp数据库连接池很好用的例子 BoneCPDataSource.java bonecp-0.7.1-rc2.jar bonecp-provider-0.7.0.jar slf4j-api-1.6.1.jar slf4j-log4j12-1.6.1.jar guava-r07.jar oracle_jdbc_classes12.jar
免责声明:资料部分来源于合法的互联网渠道收集和整理,部分自己学习积累成果,供大家学习参考与交流。收取的费用仅用于收集和整理资料耗费时间的酬劳。 本人尊重原创作者或出版方,资料版权归原作者或出版方所有,...
Java数据库连接池 BoneCP的jar包
BoneCP 是一个高性能的开源java数据库连接池实现库。它的设计初衷就是为了提高数据库连接池的性能,根据某些测试数据发现,BoneCP是最快的连接池。BoneCP很小,只有四十几K(运行时需要slf4j和guava的支持,这二者加...
这是java通过JDBC使用数据池连接数据库的小实例源码,有oracle和mysql两个实例
Java实现HTTP连接与浏览,Java源码下载,输入html文件地址或网址,显示页面和HTML源文件,一步步的实现过程请下载本实例的Java源码,代码中包括丰富的注释,对学习有帮助。 Java实现的FTP连接与数据浏览程序 1个...