项目中使用mybatis出现一个问题,项目刚启动时,查询项目列表是ok的,过上一段时间之后,再次查询项目列表,查询失败,初步判断是因为mysql的连接问题,最后查阅资料,发现是连接池中的连接失效,导致项目查询失败。

  最后修改了连接池的配置信息,当从池中取出连接的时候验证连接的有效性。如果失效,则移除该连接,重新取连接。下面描述了DBCP连接池常见的一些配置,

  官方地址 http://commons.apache.org/proper/commons-dbcp/configuration.html

    

  1. <bean id="dataSource"
  2. class="org.apache.commons.dbcp.BasicDataSource"
  3. destroy-method="close">
  4. <property name="driverClassName" value="com.mysql.jdbc.Driver"/>
  5. <property name="url" value="jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=UTF-8"/>
  6. <property name="username" value="root"/>
  7. <property name="password" value="mysql123456"/>
  8. <!--maxActive: 最大连接数量-->
  9. <property name="maxActive" value="150"/>
  10. <!--minIdle: 最小空闲连接-->
  11. <property name="minIdle" value="5"/>
  12. <!--maxIdle: 最大空闲连接-->
  13. <property name="maxIdle" value="20"/>
  14. <!--initialSize: 初始化连接-->
  15. <property name="initialSize" value="30"/>
  16. <!-- 连接被泄露时是否打印 -->
  17. <property name="logAbandoned" value="true"/>
  18. <!--removeAbandoned: 是否自动回收超时连接-->
  19. <property name="removeAbandoned" value="true"/>
  20. <!--removeAbandonedTimeout: 超时时间(以秒数为单位)-->
  21. <property name="removeAbandonedTimeout" value="10"/>
  22. <!--maxWait: 超时等待时间以毫秒为单位 -->
  23. <property name="maxWait" value="1000"/>
  24. <!-- 在空闲连接回收器线程运行期间休眠的时间值,以毫秒为单位. -->
  25. <property name="timeBetweenEvictionRunsMillis" value="10000"/>
  26. <!-- 在每次空闲连接回收器线程(如果有)运行时检查的连接数量 -->
  27. <property name="numTestsPerEvictionRun" value="10"/>
  28. <!-- 1000 * 60 * 30 连接在池中保持空闲而不被空闲连接回收器线程-->
  29. <property name="minEvictableIdleTimeMillis" value="10000"/>
  30. <!-- 用来检测连接是否有效的sql,要求是一个查询语句。如果validationQuery为null,testOnBorrow、testOnReturn、testWhileIdle都不会其作用。 -->
  31. <property name="validationQuery" value="SELECT 1"/>
  32. <!-- 申请连接时执行validationQuery检测连接是否有效,做了这个配置会降低性能。 -->
  33. <property name="testOnBorrow" value="true"/>
  34. <!-- 归还连接时执行validationQuery检测连接是否有效,做了这个配置会降低性能 -->
  35. <property name="testOnReturn" value="false"/>
  36. <!-- 建议配置为true,不影响性能,并且保证安全性。申请连接的时候检测,如果空闲时间大于timeBetweenEvictionRunsMillis,执行validationQuery检测连接是否有效。 -->
  37. <property name="testWhileIdle" value="true"/>
  38. <!-- 检测连接的时间间隔 -->
  39. <property name="timeBetweenEvictionRunsMillis" value="90000"/>
  40. </bean>

常见的DBCP连接池配置的更多相关文章

  1. DBCP连接池配置(DBCPUtils.java)

    配置文件 db_dbcp.properites driverClass=com.mysql.jdbc.Driver url=jdbc:mysql://127.0.0.1:3306/db?useSSL= ...

  2. DBCP连接池配置常用参数说明

    参数 默认值 说明 username \ 传递给JDBC驱动的用于建立连接的用户名 password \ 传递给JDBC驱动的用于建立连接的密码 url \ 传递给JDBC驱动的用于建立连接的URL ...

  3. day39-Spring 14-Spring的JDBC模板:DBCP连接池配置

    一般常用的连接池是DBCP和C3P0. package cn.itcast.spring3.demo1; import java.sql.DriverManager; import org.junit ...

  4. DBCP连接池配置参数说明

    <!-- 数据源1 --> <bean id="dataSource" class="org.apache.commons.dbcp.BasicData ...

  5. (数据库)DBCP连接池配置参数说明

    <!-- 数据源1 --> <bean id="dataSource" class="org.apache.commons.dbcp.BasicData ...

  6. DBCP连接池配置示例

    <bean id="dataSourceOracle2" class="org.apache.commons.dbcp.BasicDataSource" ...

  7. dbcp连接池配置参数

    1.<!-- 数据源1 --> 2. <bean id="dataSource" 3. class="org.apache.commons.dbcp.B ...

  8. DBCP连接池原理分析及配置用法

    DBCP连接池介绍 ----------------------------- 目前 DBCP 有两个版本分别是 1.3 和 1.4. DBCP 1.3 版本需要运行于 JDK 1.4-1.5 ,支持 ...

  9. c3p0、dbcp、tomcat jdbc pool 连接池配置简介及常用数据库的driverClass和驱动包

    [-] DBCP连接池配置 dbcp jar包 c3p0连接池配置 c3p0 jar包 jdbc-pool连接池配置 jdbc-pool jar包 常用数据库的driverClass和jdbcUrl ...

随机推荐

  1. bootstarp模板02

    HTML代码 <!DOCTYPE html> <html lang="en"> <head> <meta charset="ut ...

  2. 前端优化之动画为什么要尽量用css3代替js

    导致JavaScript效率低的两大原因:操作DOM和使用页面动画.通常我们会通过频繁的操作 DOM的CSS来实现视觉上的动画效果,导致js效率低的两个因素都包括在内了在频繁的操作DOM和CSS时,浏 ...

  3. python self

    Python要self的理由 Python的类的方法和普通的函数有一个很明显的区别,在类的方法必须有个额外的第一个参数(self),但在调用这个方法的时候不必为这个参数赋值(显胜于隐的引发). Pyt ...

  4. MySQL存储过程之游标实战

    MySQL存储过程之游标实战 ​ 博主日前在解决一个项目需求时,没有什么好的方法,于是就来学习存储过程了,之前也是接触过,奈何年少贪玩,竟是全部又还给了大学老师-苦不堪言呐-. ​ 先说一下业务需求吧 ...

  5. CoreJava逻辑思维-顺时针打印自定义矩阵

    CoreJava逻辑思维-顺时针打印自定义矩阵 这两天回顾了一下刚入Java时的一些比较有意思的逻辑题,曾经也费劲脑汁的思考过的一些问题,比如百钱百鸡最简单的算法啦之类的,而今天博主想说的是一个循环打 ...

  6. django+Echarts实现数据可视化

    1.实时异步加载(从mysql读取数据) 2.scatter散点图 3.雷达图(参数选择要注意) time_1 time_2 time_3 4.面积图 我上传的源码请到github下载:https:/ ...

  7. 【HTML5】音频视频

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...

  8. iOS 设置视图背景的透明度

    p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo; color: #00afca } span.s1 { color: #fffff ...

  9. 通过EntityFramework来操作MySQL数据库

    自己首次用到了EF,为了利人利己,故将自己今天学的记录下来. 这个项目要用到的工具是VS2015.MySQL5.7.12 . 首先我们先建一个解决方案,里面建两个项目分别是Silentdoer.Mai ...

  10. Spring MVC框架下的第一个Hello World程序

    本程序是一个maven程序,使用maven方便管理jar包和程序,简化了操作步骤.本程序的目的是通过一个简单的程序,了解Spring MVC框架的基本工作流程,由简入繁的学习Spring MVC框架, ...