阿里巴巴開源連接池 Druid 發布 1.0.12 版本
修復用戶反饋的bug,完善多種sql語法支持,改進sqlwall誤報,申請發布druid-1.0.12版本。
功能點改進和需求管理參見github自帶的issues: https://github.com/alibaba/druid/issues?state=closed
這個版本的功能點如下:
Bug
1. 修復SQLWALL constArithmeticAllow、caseConditionConstAllow、conditionOpBitwseAllow開關失效的問題。
2. 修復register mbean時的拋NPE異常的問題。
3. 修復異步關閉連接的bug。
4. 修復SQL注釋解析不準確的問題。
5. 修復sql關鍵字order做表名、字段名等時解析失敗的問題。
6. 修復SQL字符串中含有轉義雙引號導致解析失敗的問題。
7. 修復對于MySQL 含有轉義字符\\的字符串解析錯誤的問題。
8. 修復PostgreSQL select distinct語法解析錯誤的問題。
Improvement
1. 連接池支持PostgreSQL ExceptionSorter 和 ValidConnectionChecker;
2. 優化MySqlExceptionSorter;
3. 優化OracleValidConnectionChecker,解決訪問量很大的情況下,testOnBrorrow時申請連接開啟新線程導致服務器崩潰的問題;
4. 連接池并發優化;
5. JDBCUtils支持DM和KINGBASE數據庫;
6. WallVisitorUtils preVisitCheck添加針對SQLServer COMMIT、ROLLBACK語句是否允許的開關;
7. 完善SQLServer語法支持:支持OFFSET FETCH CLAUSE;
8. 完善PostgreSQL語法支持:支持 DROP TABLE IF NOT EXISTS等;
9. 修改register driver mbean error log level 從error到warn。
Druid文檔 https://github.com/alibaba/druid/wiki/%E5%B8%B8%E8%A7%81%E9%97%AE%E9%A2%98
Druid是一個JDBC組件,它包括三部分:
-
DruidDriver 代理Driver,能夠提供基于Filter-Chain模式的插件體系。
-
DruidDataSource 高效可管理的數據庫連接池。
-
SQLParser
Druid可以做什么?
1) 可以監控數據庫訪問性能,Druid內置提供了一個功能強大的StatFilter插件,能夠詳細統計SQL的執行性能,這對于線上分析數據庫訪問性能有幫助。
2) 替換DBCP和C3P0。Druid提供了一個高效、功能強大、可擴展性好的數據庫連接池。
3) 數據庫密碼加密。直接把數據庫密碼寫在配置文件中,這是不好的行為,容易導致安全問題。DruidDruiver和DruidDataSource都支持PasswordCallback。
4) SQL執行日志,Druid提供了不同的LogFilter,能夠支持Common-Logging、Log4j和JdkLog,你可以按需要選擇相應的LogFilter,監控你應用的數據庫訪問情況。
擴展JDBC,如果你要對JDBC層有編程的需求,可以通過Druid提供的Filter-Chain機制,很方便編寫JDBC層的擴展插件。