Spring + Hibernate 配置BoneCp

为什么BoneCP连接池的性能这么高呢?(bonecp-0.6.4.jar,google-collections-1.0.jar,slf4j-api-1.5.11.jar,slf4j-log4j12-1.5.11.jar。这几个是使用BoneCp的必备包)

1.BoneCP不用synchronized关键字来处理多线程对资源的争用,而是使用java.util.concurrent包中的锁机制,这个包是在JDK1.5才开始有的;

2.分区机制,尽管使用了锁,但还是存在着资源争用的问题,因此BoneCP可配置多个连接池分区,每个分区独立管理,互不影响。

尽管连接池的性能并不会是一个系统中的瓶颈,但是我们单纯从连接池这个角度来看BoneCP,也是值得我们去学习的。

²JDBC连接属于数据源

//loadtheDBdriver

Class.forName("org.hsqldb.jdbcDriver");

//createanewdatasourceobject

BoneCPDataSourceds=newBoneCPDataSource();

//settheJDBCurl

ds.setJdbcUrl("jdbc:hsqldb:mem:test");

//settheusername

ds.setUsername("sa");

//setthepassword

ds.setPassword("");

//(otherconfigoptionshere)

ds.setXXXX(...);

Connectionconnection;

connection=ds.getConnection();

//fetchaconnection

...dosomethingwiththeconnectionhere...

//closetheconnection

connection.close();

//closethedatasourcepool

ds.close();

²Spring配置数据源

<!--BoneCPconfiguration--><beanid="mainDataSource"class="com.jolbox.bonecp.BoneCPDataSource"destroy-method="close"><propertyname="driverClass"value="com.mysql.jdbc.Driver"/><propertyname="jdbcUrl"value="jdbc:mysql://127.0.0.1/yourdb"/><propertyname="username"value="root"/><propertyname="password"value="abcdefgh"/><propertyname="idleConnectionTestPeriod"value="60"/><propertyname="idleMaxAge"value="240"/><propertyname="maxConnectionsPerPartition"value="30"/><propertyname="minConnectionsPerPartition"value="10"/><propertyname="partitionCount"value="3"/><propertyname="acquireIncrement"value="5"/><propertyname="statementCacheSize"value="100"/><propertyname="releaseHelperThreads"value="3"/></bean>

²Spring+Hibernate配置数据源

<!--HibernateSessionFactory--><beanid="sessionFactory"class="org.springframework.orm.hibernate.LocalSessionFactoryBean"autowire="autodetect"><propertyname="hibernateProperties"><props><propkey="hibernate.connection.provider_class">com.jolbox.bonecp.provider.BoneCPConnectionProvider</prop><propkey="hibernate.connection.driver_class">com.mysql.jdbc.Driver</prop><propkey="hibernate.connection.url">jdbc:mysql://127.0.0.1/yourdb</prop><propkey="hibernate.connection.username">root</prop><propkey="hibernate.connection.password">abcdefgh</prop><propkey="bonecp.idleMaxAge">240</prop><propkey="bonecp.idleConnectionTestPeriod">60</prop><propkey="bonecp.partitionCount">3</prop><propkey="bonecp.acquireIncrement">10</prop><propkey="bonecp.maxConnectionsPerPartition">60</prop><propkey="bonecp.minConnectionsPerPartition">20</prop><propkey="bonecp.preparedStatementCacheSize">50</prop><propkey="bonecp.statementsCachedPerConnection">30</prop><propkey="bonecp.releaseHelperThreads">3</prop></props></property></bean>

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/WWWTYB/archive/2010/04/10/5469645.aspx

相关推荐