`
Max_1106
  • 浏览: 21745 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
文章分类
社区版块
存档分类

ibatis连接池的问题

阅读更多
iBatis自己带了一个simple的数据库连接池,基本的功能都有。但是在处理部分数据库(比如mysql)的连接空闲时间太长(mysql是8小时)自动超时的时候,就比不上象c3p0这样的连接池软件了(c3p0能自动处理数据库连接被关闭的情况)。
目前采用的方法是iBatis本身提供的一种算得上是取巧的办法,基本思想就是每隔一段时间往数据库发一条查询语句,这样使得数据库空闲时间不会太长,而使得其自动关闭。
方法是在SqlMapConfig.xml的dataSource进行如下配置:
<dataSource type="SIMPLE">
    <property name="JDBC.Driver" value="${jdbc.driverClassName}"/>
    <property name="JDBC.ConnectionURL" value="${jdbc.url}"/>
    <property name="JDBC.Username" value="${jdbc.username}"/>
    <property name="JDBC.Password" value="${jdbc.password}"/>
    <property name="Pool.PingEnabled" value="true"/>
    <property name="Pool.PingQuery" value="select 1"/>
    <property name="Pool.PingConnectionsOlderThan" value="0"/>
    <property name="Pool.PingConnectionsNotUsedFor" value="3600000"/>
</dataSource>
开始的3行是关于数据库连接信息的,不需要说明了。
Pool.PingEnabled:是用于设置开启是否允许检测连接状态
Pool.PingQuery:是用于检测连接的查询语名,当然是越简单越好
Pool.PingConnectionOlderThan:对持续连接时间超过设定值(毫秒)的连接进行检测,将其设置为0(不进行此项检测),否则,iBatis在超过这个时间后,执行每个sql以前检测连接,对于性能可能会有一定的影响。
Pool.PingConnectionsNotUsedFor:对空闲超过设定值(毫秒)的连接进行检测,设置为1小时(mysql缺省的关闭时间是8小时)
分享到:
评论

相关推荐

    ibatis实现原理解析

    Ibatis,全称为MyBatis,是一个优秀的Java持久层框架,它主要负责SQL映射,使得开发者能够将SQL语句与Java代码分离,从而更好地管理数据库操作。在本篇文章中,我们将深入解析Ibatis的实现原理,探讨其核心功能、...

    在iBatis中加入c3p0数据库连接池

    本篇文章将详细讲解如何在iBatis中集成c3p0数据库连接池,以及c3p0的基本配置和使用。 iBatis是一个轻量级的持久层框架,它允许开发者将SQL语句直接写在配置文件中,方便灵活。而c3p0则是一个开源的JDBC连接池,它...

    ibatis-2.3.0.677增加对c3p0连接池的支持

    标题 "ibatis-2.3.0.677增加对c3p0连接池的支持" 描述了MyBatis框架的一个更新,其中包含了对c3p0数据库连接池的集成。MyBatis是一个轻量级的Java持久层框架,它允许开发者将SQL语句直接嵌入到Java代码中,提供了比...

    Spring下配置几种常用连接池

    在Spring框架中,数据库连接管理是非常关键的一部分,有效的连接池配置可以提高应用的性能和稳定性。本文将深入探讨如何在Spring环境下配置几种常用的数据库连接池,包括HikariCP、Druid和Apache DBCP2。 一、...

    Java中数据库连接池原理机制的详细讲解

    Java中的数据库连接池是优化数据库访问效率的关键技术之一。它主要解决了频繁创建和关闭数据库连接导致的性能损失和资源浪费。下面将详细讲解数据库连接池的原理和机制。 1. **连接池的基本工作原理** - **资源池...

    关于DBCP数据库连接池配置整理宣贯.pdf

    DBCP(DataBase Connection Pool)是Apache组织提供的一款Java数据库连接池组件,它是Tomcat服务器默认使用的连接池组件。数据库连接池技术的主要目的是提高系统性能,减少数据库操作中的资源开销,通过预先创建并...

    iBATIS持久层框架开发

    - 利用iBATIS的缓存机制提高性能,但要注意缓存一致性问题。 - 对于复杂的SQL查询,考虑使用存储过程,iBATIS也支持调用存储过程。 9. **学习路径** 开始时,你需要理解iBATIS的基本概念,如配置文件、映射文件...

    proxool 连接池实例

    Proxool是由iBatis团队开发的,其设计目标是提供一个简单易用、功能全面且性能优异的数据库连接池。与C3P0、DBCP、HikariCP等其他连接池相比,Proxool在小型项目或测试环境中表现出色,尤其适合那些对资源管理和性能...

    达梦数据库的连接配置

    该过程主要包括两个方面:JDBC 连接和 iBatis 连接设置。 JDBC 连接 JDBC(Java Database Connectivity)是 Java 应用程序与数据库的接口规范,旨在让各数据库开发商为 Java 程序员提供标准的数据库应用程序编程...

    ibatis的dtd文件

    `&lt;dataSource&gt;`元素则定义数据源,可以选择连接池类型如POOLED或JNDI。`&lt;sqlMap&gt;`元素用于引入多个SQL映射文件,方便组织和管理。 在学习Ibatis时,直接阅读DTD文件是一种有效的方法。通过理解DTD中的各个元素及其...

    IBatis.net-IBatis.DataAccess.1.9.2/IBatis.DataMapper.1.6.2

    1. **数据库连接池**:通过高效的数据库连接管理,减少数据库资源的创建和销毁,提高系统性能。 2. **事务管理**:支持自动和手动的事务提交、回滚,确保数据一致性。 3. **数据库适配器**:为多种数据库(如MySQL、...

    ibatisDemo.rar

    本篇文章将深入探讨Ibatis的核心概念、配置以及如何构建一个高效的数据库连接池,以助你更好地理解和应用Ibatis。 一、Ibatis概述 Ibatis是一个轻量级的Java持久层框架,它主要负责SQL的编写和执行,将数据访问层...

    ibatis 相关jar包

    - `commons-dbcp-xxx.jar` 或 `pool-xxx.jar`(可能包含):数据库连接池,提高数据库连接的复用性,提升性能。 - `spring-xxx.jar`(如果与Spring集成):Spring框架的相关库,用于实现依赖注入和事务管理。 5. ...

    ibatis+oracle实例

    4. **连接池管理**:Ibatis可以与各种连接池(如C3P0、Druid、HikariCP等)集成,提高数据库连接的复用性和性能。 综上所述,`ibatis+oracle`实例展示了如何利用Ibatis的灵活性和Oracle的强大功能进行数据库操作。...

    IBatis.NET开发文档

    - 数据源配置:讲解如何配置数据连接字符串,连接池等。 - CRUD操作:详细解释如何使用iBATIS执行增删改查操作。 - 映射实体类:介绍如何将数据库表映射到.NET中的类,以及如何使用ResultMap进行复杂对象的映射。...

    ibatis配置文件模板

    - `&lt;dataSource&gt;`:定义数据源,可以是POOLED(连接池)或SIMPLE(非连接池)。 - `&lt;sqlMapConfig&gt;`:全局配置,可以包含多个`&lt;sqlMap&gt;`元素,每个`&lt;sqlMap&gt;`元素代表一个单独的XML映射文件。 - `&lt;settings&gt;`:...

    ibatis配置文件

    - 连接池参数如`Pool.MaximumActiveConnections`、`Pool.MaximumIdleConnections`等,控制连接池的大小和行为。 ### SQL映射文件引用 最后,通过`&lt;sqlMap resource="com/ibatis/sample/User.xml"/&gt;`引用了具体的...

    ibatis 配置文件详解

    - `commons-dbcp.jar`:数据库连接池的实现。 - `commons-logging-api.jar`:日志API。 - `commons-logging.jar`:日志实现。 - `commons-pool.jar`:对象池的实现。 - `hsqldb.jar`:HSQLDB数据库驱动。 - `ibatis-...

Global site tag (gtag.js) - Google Analytics