- 浏览: 251499 次
- 性别:
- 来自: 长沙
文章分类
最新评论
-
maozilee:
njoiop 写道看得懂吗,看到这个还不错(http://ww ...
使用百度地图API将谷歌地图坐标转换为百度地图坐标 -
njoiop:
看得懂吗,看到这个还不错(http://www.haoserv ...
使用百度地图API将谷歌地图坐标转换为百度地图坐标 -
di1984HIT:
不错。,不错
MySQL 5.5中使用UNIX_TIMESTAMP分区【按天】 -
zhouhongyan123:
js地址变了!! http://developer.baidu ...
GPS定位转百度坐标,精度很高! -
tanier53:
那我最近也在做大批量导入这个功能,你说得比较好,但我有疑问数据 ...
用Java向数据库中插入大量数据时的优化
BoneCP is a fast, free, open-source, Java database connection pool (JDBC Pool) library. If you are familiar with C3P0 and DBCP then you already know what this means. For the rest, this is a library that will manage a database connection for you to get faster database access in your application.
BoneCP is fast! For some tests, it's almost 25 times faster than the next fastest connection pool option, not to mention that BoneCP never spin-locks so it won't slow down your application.
官方主页:http://jolbox.com/
下载地址:http://jolbox.com/bonecp/downloads/maven/com/jolbox/bonecp/
目前最新版本为:0.7
依赖的jar包:
即
bonecp-0.7.0.jar
google-collections-1.0.jar
log4j-1.2.15.jar
mysql-connector-java-5.1.6-bin.jar(mysql驱动)
slf4j-api-1.5.10.jar
slf4j-log4j12-1.5.10.jar
以上jar包可以在这里下载http://jolbox.com/bonecp/downloads/maven/
在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(); } } } } }
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(); } } } } }
使用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。 除此之外,还需要做如下配置:
<!-- Hibernate SessionFactory --> <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>
参考:http://www.blogjava.net/sxyx2008/archive/2011/03/16/346384.html
发表评论
-
常用MySQL配置以及修改最大连接数的3种方法
2012-08-30 10:20 2388修改 MYSQL 最大连接数的3种方法: 方法一:进入M ... -
MySQL 内存表的总结
2012-08-06 12:15 1162The MEMORY storage engine creat ... -
Java Connection Pooling最佳练习
2011-10-19 21:49 2283After getting fed up with c3p ... -
准备升级到:MySQL 5.5!
2011-09-23 15:55 2184MySQL进入Oracle产品体系 ... -
MySQL 5.1.6开始的事件调度器
2011-09-23 15:26 1081自MySQL5.1.6起,增加了一个非常有特色的功 ... -
MySQL Replace INTO的高级使用
2011-09-23 12:58 957REPLACE的运行与INSERT很相 ... -
MySQL单表支持最大记录限制参考
2011-09-23 10:45 3111MySQL Reference Manual有如下记载: O ... -
Bonecp规模测试MySQL
2011-09-22 00:40 2898规模测试BoneCP,出现如下错误,问题核心: com ... -
BoneCP学习笔记——配置参数
2011-09-21 12:43 897一、BoneCP配置文件格式(bonecp-config.xm ... -
PreparedStatement与Statement区别[转]
2011-08-30 00:42 13131.PreparedStatement是预编译的,对于批量处理 ... -
存储过程比preparedStatement快吗
2011-08-30 00:40 10771,MySQL的存储过程不进行预编译,所以这方面不会有优势,但 ... -
提示MySQL插入速度的方法
2011-08-29 23:49 1641最近项目要求挺多,对I ... -
MYSQL数据库批量插入(使用JAVA)完整案例
2011-08-29 23:45 3581本实例给出批量insert到mysql的java实例 ... -
用Java向数据库中插入大量数据时的优化
2011-08-29 23:36 20000使用jdbc向数据库插入100000条记录,分别使用state ...
相关推荐
采用bonecp数据库连接池封装了Jdbc,当时也是网上下载了一份代码,发现不能用,只好自己修改代码,现在这个代码是可以直接运行的,测试用的Sql Server 2008,表很简单,就四个字段
Java 中的 BoneCP 数据库连接池用法 BoneCP 是一个开源的 Java 数据库连接池,它的官方网站网址是 http://jolbox.com/。据 BoneCP 官方网站报告称,BoneCP 比性能排名第二的 Java 数据库连接池性高高 25 倍以上,...
BoneCP是一款轻量级、高性能的Java数据库连接池,设计目标是解决传统数据库连接池在高并发环境下的性能瓶颈问题。 BoneCP的核心原理是预先创建并维护一定数量的数据库连接,这些连接存储在一个池中,当应用程序需要...
BoneCP 是一个高效、轻量级的 Java 数据库连接池(JDBC Connection Pool)实现。它在性能上优于其他同类连接池,如 C3P0 和 DBCP,尤其适用于高并发场景。在深入理解 BoneCP 之前,我们先来了解一下数据库连接池的...
本实例源码是关于BoneCP数据库连接池的实现,它是一个高效且轻量级的连接池库,适用于Java环境。在本压缩包中,包含了配置文件bonecp-default-config.xml以及相关的类库。 首先,`bonecp-default-config.xml`是...
BoneCP是一款高效、轻量级的Java数据库连接池实现,它的源码分析对于我们理解数据库连接池的工作原理,优化数据库性能以及进行二次开发具有重要意义。 首先,我们需要了解数据库连接池的基本概念。数据库连接池是...
基于java的开发源码-数据库连接池 BoneCP.zip 基于java的开发源码-数据库连接池 BoneCP.zip 基于java的开发源码-数据库连接池 BoneCP.zip 基于java的开发源码-数据库连接池 BoneCP.zip 基于java的开发源码-数据库...
骨CP(BoneCP)是一款高性能、轻量级的开源Java数据库连接池,它以其高效的并发性能和优秀的资源管理而受到开发者的青睐。本教程将深入探讨骨CP的基本概念、安装配置、使用方法以及优化策略。 一、骨CP简介 骨CP是...
不过,理解BoneCP的工作原理和优势,对于理解数据库连接池的概念和使用仍然具有参考价值。 在深入研究 BoneCP 的源码时,可以关注以下几个关键组件: 1. `ConnectionHandle`:这是 BoneCP 提供的接口,代表数据库...
在使用数据库连接池时,常见的连接池实现有DBCP、C3p0、TomcatJdbcPool、BoneCP和Druid等。以DBCP为例,使用它需要导入commons-dbcp.jar和commons-pool.jar包。在Maven项目中,需要在pom.xml配置文件中添加相应的...
在BoneCP中,`META-INF`可能还包含服务提供者接口(SPI)的配置,使得其他应用可以通过Java的SPI机制发现并使用BoneCP作为数据库连接池。 总的来说,`基于java的数据库连接池 BoneCP.zip`是一个包含BoneCP连接池...
JAVA源码Java数据库连接池BoneCP
BoneCP是一个高效、轻量级的Java数据库连接池实现,设计目标是提供比其他连接池更高的并发性能。在这个"基于Java的数据库连接池 BoneCP.zip"压缩包中,我们可以找到与 BoneCP 相关的关键配置文件和组件。 首先,`...
BoneCP是一款高效、轻量级的数据库连接池实现,它在设计上注重了性能和内存使用效率,为Java应用提供了便捷的数据库连接管理。 BoneCP的核心功能包括: 1. 连接池管理:BoneCP能够创建一定数量的数据库连接,并将...
BoneCP是一个高效的、开源的Java数据库连接池,它在Java社区中被广泛使用,尤其适合于高并发的应用场景。此项目源代码是基于Eclipse开发的,提供了完整的工程结构,便于开发者理解和学习BoneCP的实现原理。 BoneCP...
标题提到的“数据库连接池以及hibernate对各种连接池的整合”是指在Java应用中,特别是使用Hibernate作为持久层框架时,如何集成和配置不同的数据库连接池技术。以下是一些主要的开源数据库连接池及其特点: 1. **...
本文将详细介绍几个常见的Java数据库连接池实现:C3P0、Druid、JNDI、DBCP、Proxool以及BoneCP,并结合Spring+MyBatis+maven环境下的应用示例进行解析。 1. C3P0: C3P0是一个开源的JDBC连接池,它实现了数据源和...
BoneCP 是一个轻量级、高性能的 Java 数据库连接池,本文将深入剖析其源码,理解其工作原理和实现机制。 1. **BoneCP 简介** BoneCP 是由 Jeff Smith 创建的一个开源数据库连接池,它设计的目标是提供比 C3P0 和 ...
java源码:Java数据库连接池 BoneCP.jar