BoneCP是一个快速,开源的数据库连接池。帮你管理数据连接让你的应用程序能更快速地访问数据库。
比C3P0/DBCP连接池快25倍。
该项目主页:
http://jolbox.com/about.html
为什么 BoneCP 连接池的性能这么高呢?
1. BoneCP 不用 synchronized 关键字来处理多线程对资源的争用,而是使用 java.util.concurrent 包中的锁机制,这个包是在 JDK 1.5 才开始有的;
2. 分区机制,尽管使用了锁,但还是存在着资源争用的问题,因此 BoneCP 可配置多个连接池分区,每个分区独立管理,互不影响。
尽管连接池的性能并不会是一个系统中的瓶颈,但是我们单纯从连接池这个角度来看 BoneCP ,也是值得我们去学习的。
²
JDBC
连接属于数据源
// load the DB driver
Class.forName("org.hsqldb.jdbcDriver");
// create a new datasource object
BoneCPDataSource ds = new BoneCPDataSource();
// set the JDBC url
ds.setJdbcUrl("jdbc:hsqldb:mem:test");
// set the username
ds.setUsername("sa");
// set the password
ds.setPassword("");
// (other config options here)
ds.setXXXX(...);
Connection connection;
connection = ds.getConnection();
// fetch a connection
...
do something with the connection here ...
// close the connection
connection.close();
// close the datasource pool
ds.close();
²
Spring
配置数据源
<!-- BoneCP configuration -->
<bean id="mainDataSource" class="com.jolbox.bonecp.BoneCPDataSource" destroy-method="close">
<property name="driverClass" value="com.mysql.jdbc.Driver" />
<property name="jdbcUrl" value="jdbc:mysql://127.0.0.1/yourdb" />
<property name="username" value="root"/>
<property name="password" value="abcdefgh"/>
<property name="idleConnectionTestPeriod" value="60"/>
<property name="idleMaxAge" value="240"/>
<property name="maxConnectionsPerPartition" value="30"/>
<property name="minConnectionsPerPartition" value="10"/>
<property name="partitionCount" value="3"/>
<property name="acquireIncrement" value="5"/>
<property name="statementCacheSize" value="100"/>
<property name="releaseHelperThreads" value="3"/>
</bean>
²
Spring+Hibernate
配置数据源
<!-- 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.preparedStatementCacheSize">50</prop>
<prop key="bonecp.statementsCachedPerConnection">30</prop>
<prop key="bonecp.releaseHelperThreads">3</prop>
</props>
</property>
</bean>
分享到:
相关推荐
BoneCP是一款高效的数据库...在Hibernate的配置文件`hibernate.cfg.xml`中,指定使用BoneCP作为数据源: ```xml <property name="hibernate.connection.datasource">com.jolbox.bonecp.BoneCPDataSource</property> ...
### 主流数据源配置信息详解 #### 数据库连接池概述 数据库连接的建立与断开是一种资源密集型操作,尤其对于频繁访问数据库的应用程序来说,每次建立和断开连接都会带来显著的时间开销,严重影响系统整体性能。...
数据源配置(`<bean id="dataSource">`)中,我们使用了BoneCP连接池,配置了数据库连接信息和其他连接池参数,如最大和最小连接数、超时时间等。 接着,配置了事务管理器`<bean id="transactionManager">`,这里...
- 创建数据源配置文件,如`bonecp.properties`,配置数据库连接信息。 - 在代码中加载配置,初始化连接池,如`Config config = new Config(); config.loadProperties("bonecp.properties"); ConnectionPool cp = ...
"Java项目生产环境配置详解" Java项目生产环境配置 在Java项目中,生产环境配置是一个非常重要的步骤,直接关系到项目的稳定运行和性能。下面我们将详细介绍Java项目生产环境配置的几个重要方面。 日志配置 日志...
数据源(`dataSource`)的配置也是必不可少的,这里使用了BoneCP连接池。配置包括数据库驱动、URL、用户名、密码以及连接池的一些参数,例如检查空闲连接的时间间隔、连接的最大和最小存活时间、连接池分区等: ```...
### SSH事务配置详解 #### 一、概述 SSH框架(Struts + Spring + Hibernate)是Java Web开发中非常流行的一种组合方案。它结合了MVC(Model-View-Controller)设计模式的优势,提供了灵活的数据访问层(Hibernate...
- 实践建议:推荐将基础配置(如数据源、资源文件等)使用 XML 进行配置;而对于具体的业务逻辑(如 Service 层注入等),则推荐使用注解配置。 3. **Spring 3.x 至 Spring 4.x 时代:** - 特征:引入了 Java ...
- 基础配置(如数据源、资源文件等)仍然可以使用 XML 进行配置,以保持其独立性和易于维护的特点。 - 业务逻辑相关的 Bean 注入则推荐使用注解的方式来进行,如在 Service 层注入其他 Bean。 #### Spring 的 Java ...
- **最佳实践**:通常建议将基础配置(如数据源、资源文件等)采用XML配置,而业务逻辑相关的Bean注入则采用注解方式,这样的混合配置模式能更好地平衡灵活性与可维护性。 - **Spring3.x到Spring4.x**:这些版本...
- 应用的基础配置(如数据源、资源文件等)采用XML配置。 - 业务开发中Bean的注入(如在Service层中注入其他Bean)则推荐使用注解配置。 - **Spring 3.x至Spring 4.x**:从Spring 3.x开始,引入了Java配置方式,...
### Spring IOC与DI注解开发知识点详解 #### 一、Spring框架...通过以上内容,我们可以了解到Spring框架中IOC和DI的基本概念,以及如何配置和使用数据源(连接池)。这为开发高效稳定的企业级应用提供了坚实的基础。
- 基础配置如数据源、资源文件等使用 XML 进行配置。 - 业务开发中,如 Service 层注入 Bean 等操作则采用注解配置。 - **Spring3.x 到 Spring4.x 时代** - Spring3.x 开始提供 Java 配置方式,这种配置方式不仅...
不过,在实际开发中,推荐采用一种混合的方式:即对于基础配置如数据源、资源文件等使用XML;而对于具体的业务逻辑如Service层的Bean注入,则使用注解。 3. **Spring 3.x 到 Spring 4.x:** - 这个时期Spring...
- **Spring 3.x 版本**:数据源和连接池等配置依然在 XML 文件中,但对于 Service 层等则通过注解来实现扫描。 - **Spring 4.x 版本**:全面推荐使用 Java 注解的方式来替代 XML 配置。 #### 二、Spring Boot 入门...
- 基础配置(如数据源、资源文件等)使用 XML; - 业务开发(如 Service 层中的 Bean 注入等)使用注解。 ##### Spring 3.x 到 Spring 4.x 从 Spring 3.x 开始,引入了 Java 配置方式,这种方式更加直观易懂,能够...
关于使用XML还是注解的问题,推荐的最佳实践为:基础配置(如数据源、资源文件等)采用XML配置;业务相关的Bean则使用注解进行配置。 - **Spring 3.x至Spring 4.x**:这一时期,Spring引入了Java配置方式,这是一种...
JNDI方式创建的数据源是基于Java的`javax.sql.DataSource`接口,由Web服务器(如Tomcat、WebLogic、WebSphere等)负责初始化和管理。 使用JNDI方式配置数据库连接池时,不需要在项目中额外引入JAR包,但需要在Web...