牛骨文教育服务平台(让学习变的简单)
博文笔记

号称性能最好的JDBC连接池:HikariCP

创建时间:2016-06-29 投稿人: 浏览次数:1355

HikariCP号称是现在性能最好的JDBC连接池组件,具体的性能到底如何,我也没有仔细的测试过,不过从它现在的发展来看,其可能确实如它宣传的那样其性能高过目前所有的连接池组件。之前对连接池的记忆一直都是C3P0、DBCP、BoneCP,这三者中BoneCP的性能是最好的,C3P0的性能在现在来说确实是非常差的了,好像C3P0很久都没有更新了,所以我们应该杜绝在项目中使用C3P0,至于是否要使用HikariCP,我觉得可以尝试。HikariCP毕竟是才出来不久,其性能到底如何,也需要实践的检验,若是担心新东西有坑,我推荐使用BoneCP。Spring现在也集成了HikariCP,所以我觉得很有尝试它的必要。前不久我在项目中使用了HikariCP,也没出现什么问题,运行比较稳定。

HikariCP在github上的地址:https://github.com/brettwooldridge/HikariCP

下面是2张HikariCP和其他连接池组件的性能比较图片:


在其网站上可以看到详细的使用文档,下面是常规的使用方法:

?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 import java.sql.Connection; import java.sql.SQLException;   import com.zaxxer.hikari.HikariConfig; import com.zaxxer.hikari.HikariDataSource;   /**  * HikariCP使用  * @author CoolKing  *  */ public class DataSource {           private HikariDataSource ds;           /**      * 初始化连接池      * @param minimum      * @param Maximum      */     public void init(int minimum,int Maximum){         //连接池配置         HikariConfig config = new HikariConfig();         config.setDriverClassName("com.mysql.jdbc.Driver");         config.setJdbcUrl("jdbc:mysql://127.0.0.1:3306/testdb?user=root&password=123456&useUnicode=true&characterEncoding=utf8");         config.addDataSourceProperty("cachePrepStmts", true);         config.addDataSourceProperty("prepStmtCacheSize", 500);         config.addDataSourceProperty("prepStmtCacheSqlLimit", 2048);         config.setConnectionTestQuery("SELECT 1");         config.setAutoCommit(true);         //池中最小空闲链接数量         config.setMinimumIdle(minimum);         //池中最大链接数量         config.setMaximumPoolSize(Maximum);                   ds = new HikariDataSource(config);               }           /**      * 销毁连接池      */     public void shutdown(){         ds.shutdown();     }           /**      * 从连接池中获取链接      * @return      */     public Connection getConnection(){         try {             return ds.getConnection();         } catch (SQLException e) {             e.printStackTrace();             ds.resumePool();             return null;         }     }           public static void main(String[] args) throws SQLException {         DataSource ds = new DataSource();         ds.init(10, 50);         Connection conn = ds.getConnection();         //......         //最后关闭链接         conn.close();     }       }
另外,HikariCP需要依赖下面几个jar

slf4j-api-1.7.12.jar

metrics-core-3.0.2.jar

metrics-healthchecks-3.1.2.jar

javassist-3.19.0-GA.jar

HikariCP-2.3.5.jar

若使用MySQL则还需要mysql-connector-java-5.0.8-bin.jar

以上使用HikariCP需要的jar可以到http://download.csdn.net/detail/abc_key/8790543这个地址下载


来自:http://www.2cto.com/database/201506/406591.html

声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。