达梦数据库同Druid连接配置及常见问题
建立数据库连接耗时耗费资源,一个数据库服务器能够同时建立的连接数也是有限的,在大型的Web应用中,可能同时会有成百上千的访问数据库的请求,如果Web应用程序为每一个客户请求分配一个数据库连接,将导致性能的急剧下降。
数据库连接池的意义在于,能够重复利用数据库连接(有点类似线程池的部分意义),提高对请求的响应时间和服务器的性能。 连接池中提前预先建立了多个数据库连接对象,然后将连接对象保存到连接池中,当客户请求到来时,直接从池中取出一个连接对象为客户服务,当请求完成之后,客户程序调用close()方法,将连接对象放回池中 Druid介绍 druid为阿里巴巴的数据源,(数据库连接池),集合了c3p0、dbcp、proxool等连接池的优点,还加入了日志监控,有效的监控DB池连接和SQL的执行情况。 DRUID的DataSource类为:com.alibaba.druid.pool.DruidDataSource。 其他配置参数如下:
spring+druid的典型配置
下面展示一些 内联代码片。
<bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource" init-method="init" destroy-method="close"> <property name="driverClassName" value="${jdbc.driver}" /> <property name="url" value="${jdbc.url}" /> <property name="username" value="${jdbc.username}" /> <property name="password" value="${jdbc.password}" /> <property name="filters" value="stat,log4j" /> </bean>
关于Druid连接达梦的常见出错
1.报如下的错误: 16:16:50,872 ERROR main pool.DruidDataSource:658 - dataSource init error java.sql.SQLException: unkow jdbc driver : jdbc:dm://localhost:5236 atcom.alibaba.druid.util.JdbcUtils.getDriverClassName(JdbcUtils.java:416) 报错原因: 是因为Druid 1.0.11及以前版本,不能省略driverClassName参数否则出现 unkow jdbc driver 异常 解决方法: 升级到最新版,如1.1.20(推荐) 或 配置 driverClassName=dm.jdbc.driver.DmDriver
2.报错信息如下: 16:01:02,007 ERROR main pool.DruidDataSource:983 - {dataSource-1} init error java.lang.IllegalStateException: dbType not support : dm, url jdbc:dm://localhost:5236 at com.alibaba.druid.wall.WallFilter.init(WallFilter.java:167) 报错原因: 配置了wall Filter(防火墙过滤),报异常: dbType not support 解决方法: 去掉wall配置