阿里巴巴开源连接池 Druid 发布 1.0.12 版本

jopen 10年前

修复用户反馈的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层的扩展插件。