`
thingkau
  • 浏览: 73842 次
  • 性别: Icon_minigender_1
  • 来自: 泉州
社区版块
存档分类
最新评论

JAVA中对MySQL的链接池配置

阅读更多
MySQL 中默认在8小时后关闭闲置链接。为了测试,修改my.ini文件在最后添上以下内容:

#auto close idle connection after 10 seconds.
wait_timeout=10


假设使用DBCP做链接池,做如下配置:
  <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
    <property name="driverClassName" value="org.gjt.mm.mysql.Driver"/>
    <property name="url" value="jdbc:mysql://localhost:3306/dbname?useUnicode=true&amp;characterEncoding=UTF-8"/>
    <property name="username" value="root"/>
    <property name="password" value="root"/>
   
    <property name="initialSize" value="1"/>
    <property name="maxActive" value="20"/>
    <property name="maxWait" value="10"/>
    <property name="maxIdle" value="2"/>
    <property name="minIdle" value="1"/>
    <property name="testWhileIdle" value="true"/>
    <property name="minEvictableIdleTimeMillis" value="10000"/>
    <property name="timeBetweenEvictionRunsMillis" value="10000"/>
  </bean>

这样保证了被MySQL 关闭的连接对应于 链接池中的连接对象及时被清理,可以避免了MySQLIO异常,The last packet successfully received from the server was 46,958,922 milliseconds ago.  The last packet sent successfully to the server was 46,958,922 milliseconds ago. is longer than the server configured value of 'wait_timeout'. You should consider either expiring and/or testing connection validity before use in your application, increasing the server configured values for client timeouts, or using the Connector/J connection property 'autoReconnect=true' to avoid this problem.

配置解释:
timeBetweenEvictionRunsMillis=10000启动一个子线程每隔10秒检测闲置连接,连接对象个数,并对无效连接进行Evict清理操作。
minEvictableIdleTimeMillis=10000连接对象闲置10秒后允许被Evict清理。
testWhileIdle=true是否检查闲置连接对象。

hibernate里配置C3P0链接池属性:

    <!-- C3P0 Connection Pool -->
    <property name="hibernate.connection.provider_class">org.hibernate.connection.C3P0ConnectionProvider</property>
    <property name="hibernate.c3p0.max_size">20</property>
    <property name="hibernate.c3p0.min_size">2</property>
    <property name="hibernate.c3p0.timeout">100</property><!-- 连接对象允许的闲置时间(以秒为单位) -->
    <property name="hibernate.c3p0.idle_test_period">100</property><!-- 每隔100秒检测连接是否可正常使用 -->
    <property name="hibernate.c3p0.acquire_increment">3</property><!-- 当池中的连接耗尽的时候,一次性增加的连接数量,默认为3 -->
    <property name="hibernate.c3p0.max_statements">100</property><!-- statemnets缓存大小 -->
    <!-- hibernate.c3p0.validate :检查连接,推荐使用hibernate.c3p0.idle_test_period_代替,默认值为false -->
分享到:
评论
发表评论

文章已被作者锁定,不允许评论。

相关推荐

    mysql连接池java源码

    MySQL连接池在Java应用开发中扮演着至关重要的角色,它是一种管理数据库连接的机制,能够有效地提高数据库操作的性能和效率。在这个项目中,我们看到的是一个纯手工编写的Java源码实现,不依赖任何外部数据库驱动,...

    java连接mysql数据库连接池demo

    在"java连接mysql数据库连接池demo"这个项目中,我们可以深入探讨以下几个方面: 1. **JDBC**: JDBC是Java平台的标准接口,它允许Java程序与各种数据库进行交互。通过JDBC,开发者可以执行SQL语句,处理结果集,...

    java常用数据源连接池配置

    ### Java常用数据源连接池配置详解 #### 一、引言 在Java Web开发中,数据库连接管理是一项至关重要的任务。为了提高应用性能并确保资源的有效利用,通常会使用数据源连接池技术来管理和复用数据库连接。本文将详细...

    Java 连接池多种方式配置

    本文将详细介绍在Java环境中配置连接池的多种方式,涵盖不同常用的Java框架。 一、C3P0连接池 C3P0是一个开源的JDBC连接池,它实现了数据源和JNDI绑定,支持JDBC3规范和JDBC2的标准扩展。配置C3P0连接池通常需要在...

    Tomcat连接池配置

    **描述**: Tomcat连接池配置涉及到在Apache Tomcat服务器中设置数据源,以便高效地管理和复用数据库连接。这包括对Oracle和MSSQL Server这两种不同类型的数据库进行配置,并在Java应用程序中引用这些连接池。提供的...

    mysql+tomcat连接池配置

    MySQL和Tomcat是Java Web开发中常用的数据库管理系统和应用服务器,它们之间的连接池配置是确保高效数据访问的关键。本文将详细介绍如何配置MySQL与Tomcat的连接池,以便在Java应用程序中实现优化的数据交互。 首先...

    Tongweb5中配置JDBC连接池

    总的来说,Tongweb5中的JDBC连接池配置是一项关键的系统优化工作,通过合理的配置和使用,可以显著提升Web应用的性能和稳定性。在实践中,开发者需要根据具体的应用场景和负载情况,进行细致的调整和测试,以达到...

    mysql,sqlserver,oracle,java连接池,连接程序

    Oracle数据库的连接池配置则需要用到ojdbc驱动,其连接字符串格式为`jdbc:oracle:thin:@&lt;host&gt;:&lt;port&gt;:&lt;service_name&gt;`。Oracle的连接池配置通常还需要设置SID或Service Name,以及其他特定的连接属性。 在Java中,...

    tomcat与mysql连接池的配置

    ### Tomcat与MySQL连接池的配置详解 #### 一、引言 在Java Web开发过程中,数据库连接管理是一项至关重要的任务。为了提高系统的性能和稳定性,通常会采用连接池技术来管理和复用数据库连接资源。本文将详细介绍...

    java连接mysqljava连接mysql

    以下是一个简单的示例,展示了如何在Java中建立MySQL连接: ```java import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; public class MySQLConnectionExample { public...

    C3P0连接池jar包,mysql-connector-java-5.1.37,druid连接池jar包,commons-dbu

    本文将详细介绍三个重要的组件:C3P0连接池、MySQL的JDBC驱动(mysql-connector-java-5.1.37)以及Druid连接池,以及它们在Java中的应用和作用。 首先,C3P0是一个开源的JDBC连接池,全称为ComMchange V2 C3P0。它...

    JAVA 完整的数据库连接池实现

    本文将详细介绍如何在 Java 中实现一个完整的数据库连接池,并探讨其核心概念、工作原理以及如何根据需求进行配置。 首先,我们需要理解数据库连接池的基本概念。数据库连接池是一种对象池设计模式的应用,它维护了...

    Druid简单高性能MySQL连接池

    Druid是阿里巴巴开源的一款高效、强大的数据库连接池组件,它在Java编程中广泛应用于大数据量、高并发的Web应用中。Druid不仅提供了基础的数据库连接池功能,还集成了监控、SQL解析、参数绑定等多个高级特性,为开发...

    mysql-connector-java java连接mysql库

    在实际开发中,开发者还需要了解如何处理异常、事务管理、连接池配置等高级主题。例如,使用`try-with-resources`语句可以确保资源的正确关闭,而连接池(如C3P0、HikariCP或Apache DBCP)则可以提高应用程序的性能...

    WebSphere中流行数据库连接池的配置(Oracle、SQL Server、Sybase、MySQL)

    配置 MySQL 连接池的步骤与 Oracle 相似,需要在“JDBC 提供程序”中选择 mysql-connector-java-3.1.10-bin.jar,然后按照同样的步骤进行配置。 六、总结 配置 WebSphere 中的数据库连接池需要按照具体的数据库...

    mysql连接池

    在Java开发中,常见的MySQL连接池实现有Apache的DBCP、C3P0、HikariCP以及Tomcat JDBC Connection Pool等。这些连接池库提供了配置参数,允许开发者调整连接的最大数量、最小数量、超时时间、空闲连接检查频率等,以...

    连接池案例 连接池案例

    在实际应用中,开发者通常会在Spring框架中配置数据源,选择合适的连接池实现,如在Spring Boot项目中,可以通过YAML或properties配置文件设置连接池的相关参数: ```yaml spring: datasource: type: ...

    tomcat配置mysql连接池

    本篇文章将详细介绍如何在Tomcat中配置MySQL连接池,以便你的应用程序能够高效、稳定地访问MySQL数据库。 首先,我们需要了解连接池的基本概念。连接池是在应用启动时预创建一定数量的数据库连接,然后在应用运行...

    mysql数据连接池

    此外,连接池通常还提供线程安全、连接池配置参数等高级功能,如最大连接数、最小连接数、超时设置等。 5. **池化技术**:数据连接池采用池化技术,将数据库连接对象进行管理和调度,使得多个应用程序可以共享这些...

Global site tag (gtag.js) - Google Analytics