`
zhaohaolin
  • 浏览: 1003793 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

BoneCP数据源配置详解

阅读更多

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配置(当今最快的连接池)

    BoneCP是一款高效的数据库...在Hibernate的配置文件`hibernate.cfg.xml`中,指定使用BoneCP作为数据源: ```xml &lt;property name="hibernate.connection.datasource"&gt;com.jolbox.bonecp.BoneCPDataSource&lt;/property&gt; ...

    主流数据源配置信息

    ### 主流数据源配置信息详解 #### 数据库连接池概述 数据库连接的建立与断开是一种资源密集型操作,尤其对于频繁访问数据库的应用程序来说,每次建立和断开连接都会带来显著的时间开销,严重影响系统整体性能。...

    JSP 中spring事务配置详解.docx

    数据源配置(`&lt;bean id="dataSource"&gt;`)中,我们使用了BoneCP连接池,配置了数据库连接信息和其他连接池参数,如最大和最小连接数、超时时间等。 接着,配置了事务管理器`&lt;bean id="transactionManager"&gt;`,这里...

    bonecpdemo 含jar包源码

    - 创建数据源配置文件,如`bonecp.properties`,配置数据库连接信息。 - 在代码中加载配置,初始化连接池,如`Config config = new Config(); config.loadProperties("bonecp.properties"); ConnectionPool cp = ...

    java项目生产环境配置.docx

    "Java项目生产环境配置详解" Java项目生产环境配置 在Java项目中,生产环境配置是一个非常重要的步骤,直接关系到项目的稳定运行和性能。下面我们将详细介绍Java项目生产环境配置的几个重要方面。 日志配置 日志...

    JSP 中spring事务配置详解

    数据源(`dataSource`)的配置也是必不可少的,这里使用了BoneCP连接池。配置包括数据库驱动、URL、用户名、密码以及连接池的一些参数,例如检查空闲连接的时间间隔、连接的最大和最小存活时间、连接池分区等: ```...

    ssh事务配置.txt

    ### SSH事务配置详解 #### 一、概述 SSH框架(Struts + Spring + Hibernate)是Java Web开发中非常流行的一种组合方案。它结合了MVC(Model-View-Controller)设计模式的优势,提供了灵活的数据访问层(Hibernate...

    springboot学习笔记

    - 实践建议:推荐将基础配置(如数据源、资源文件等)使用 XML 进行配置;而对于具体的业务逻辑(如 Service 层注入等),则推荐使用注解配置。 3. **Spring 3.x 至 Spring 4.x 时代:** - 特征:引入了 Java ...

    springboot教案.docx

    - 基础配置(如数据源、资源文件等)仍然可以使用 XML 进行配置,以保持其独立性和易于维护的特点。 - 业务逻辑相关的 Bean 注入则推荐使用注解的方式来进行,如在 Service 层注入其他 Bean。 #### Spring 的 Java ...

    springboot笔记

    - **最佳实践**:通常建议将基础配置(如数据源、资源文件等)采用XML配置,而业务逻辑相关的Bean注入则采用注解方式,这样的混合配置模式能更好地平衡灵活性与可维护性。 - **Spring3.x到Spring4.x**:这些版本...

    springboot

    - 应用的基础配置(如数据源、资源文件等)采用XML配置。 - 业务开发中Bean的注入(如在Service层中注入其他Bean)则推荐使用注解配置。 - **Spring 3.x至Spring 4.x**:从Spring 3.x开始,引入了Java配置方式,...

    day2-Spring IOC 和 DI 注解开发.md

    ### Spring IOC与DI注解开发知识点详解 #### 一、Spring框架...通过以上内容,我们可以了解到Spring框架中IOC和DI的基本概念,以及如何配置和使用数据源(连接池)。这为开发高效稳定的企业级应用提供了坚实的基础。

    springboot开发笔记

    - 基础配置如数据源、资源文件等使用 XML 进行配置。 - 业务开发中,如 Service 层注入 Bean 等操作则采用注解配置。 - **Spring3.x 到 Spring4.x 时代** - Spring3.x 开始提供 Java 配置方式,这种配置方式不仅...

    超详细的springboot学习笔记

    不过,在实际开发中,推荐采用一种混合的方式:即对于基础配置如数据源、资源文件等使用XML;而对于具体的业务逻辑如Service层的Bean注入,则使用注解。 3. **Spring 3.x 到 Spring 4.x:** - 这个时期Spring...

    springboot课堂笔记,如果觉得好给我留言要教学视频

    - **Spring 3.x 版本**:数据源和连接池等配置依然在 XML 文件中,但对于 Service 层等则通过注解来实现扫描。 - **Spring 4.x 版本**:全面推荐使用 Java 注解的方式来替代 XML 配置。 #### 二、Spring Boot 入门...

    Spring boot 笔记

    - 基础配置(如数据源、资源文件等)使用 XML; - 业务开发(如 Service 层中的 Bean 注入等)使用注解。 ##### Spring 3.x 到 Spring 4.x 从 Spring 3.x 开始,引入了 Java 配置方式,这种方式更加直观易懂,能够...

    springboot_笔记

    关于使用XML还是注解的问题,推荐的最佳实践为:基础配置(如数据源、资源文件等)采用XML配置;业务相关的Bean则使用注解进行配置。 - **Spring 3.x至Spring 4.x**:这一时期,Spring引入了Java配置方式,这是一种...

    Java 数据库连接池详解及简单实例

    JNDI方式创建的数据源是基于Java的`javax.sql.DataSource`接口,由Web服务器(如Tomcat、WebLogic、WebSphere等)负责初始化和管理。 使用JNDI方式配置数据库连接池时,不需要在项目中额外引入JAR包,但需要在Web...

Global site tag (gtag.js) - Google Analytics