BoneCP是一个快速,开源的数据库连接池。帮你管理数据连接让你的应用程序能更快速地访问数据库。
比C3P0/DBCP连接池快25倍。
为什么 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
配置数据源
²
Spring+Hibernate
配置数据源
>
com.jolbox.bonecp.provider.BoneCPConnectionProvider
com.mysql.jdbc.Driver
jdbc:mysql://127.0.0.1/yourdb
root
abcdefgh
240
60
3
10
60
20
50
30
3