论坛首页 入门技术论坛

IBatis为何标准支持DBCP链接池?

浏览 4973 次
该帖已经被评为新手帖
作者 正文
   发表时间:2008-06-30  
在IBatis中,使用DBCP链接池,JDBC链接池还有JNDI都不困难,但是并没有简单地支持C3P0(或者是我没有找到相应的使用文档)。
在实际项目中,我个人感觉C3P0比DBCP要好一点点,为什么IBatis没有提供相应的集成方法(或者需要自己写一些链接池工场等)?

谢谢。
   发表时间:2008-07-18  
可以自己拓展ibatis,支持C3P0,以下是相关文件

1、sqlMapConfig(请根据场景自己修改)

<?xml version="1.0" encoding="UTF-8" ?>

<!DOCTYPE sqlMapConfig PUBLIC "-//ibatis.apache.org//DTD SQL Map Config 2.0//EN"
    "http://ibatis.apache.org/dtd/sql-map-config-2.dtd">
<sqlMapConfig>
<settings cacheModelsEnabled="true" lazyLoadingEnabled="true" maxRequests="32" maxSessions="10" maxTransactions="5" useStatementNamespaces="true"/>
<transactionManager type="JDBC">
<dataSource type="C3P0">
<property name="driver" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost/mydb?useUnicode=true&amp;characterEncoding=UTF-8"/>
<property name="username" value="root"/>
<property name="password" value="123123"/>
<property name="initialPoolSize" value="10"/>
<property name="maxPoolSize" value="100"/>
<property name="minPoolSize" value="10"/>
<property name="acquireIncrement" value="5"/>
<property name="maxIdleTime" value="3600"/>
<property name="maxIdleTimeExcessConnections" value="1200"/>
<property name="maxConnectionAge" value="27000"/>
<property name="maxStatements" value="500"/>
<property name="maxStatementsPerConnection" value="50"/>
<property name="numHelperThreads" value="5"/>
</dataSource>-->
</transactionManager>
</sqlMapConfig>

2、java 源码

com.ibatis.common.jdbc C3P0Configuration.java
com.ibatis.sqlmap.engine.datasource C3P0DataSourceFactory.java
com.ibatis.sqlmap.engine.builder.xml SqlMapConfigParser.java

3、c3p0-0.9.1.2、mysql-connector5.0、ibatis2.2

使用方法:编译后将三个.class文件添加(或替换掉)c3p0-0.9.1.2.jar中的同名文件(可使用winrar工具),当然,直接将class文件置入/app-dir/web-inf/classes目录下亦可。
  • ibatis-C3P0.zip (1.4 MB)
  • 描述: ibatis-c3p0.zip 拓展ibatis,支持c3p0 pool
  • 下载次数: 259
0 请登录后投票
   发表时间:2008-09-04  
SqlMapConfigParser编译不过去
0 请登录后投票
论坛首页 入门技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics