成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

ibatis下加入c3p0連接池的方法

開發(fā) 后端
c3p0連接池是我們經(jīng)常用到的,但是在ibatis下如何加入c3p0連接池呢?本文就針對(duì)ibatis下加入c3p0連接池提供了一個(gè)有效的解決方法。

我看論壇里有兩個(gè)人寫了在iBatis中加入c3p0連接池,我也就不跟著摻合了,做這個(gè)ibatis下加入c3p0連接池的方法的原因是沒法用spring,又需要連接池,且對(duì)DBCP一直觀感不加,沒法,只好自己動(dòng)手加入c3p0連接池了。

在iBatis中加入c3p0連接池沒啥難技術(shù)含量,寫個(gè)文章備份下。

首先打開iBatis的源碼包,找到com.ibatis.sqlmap.engine.datasource包,在里面新建個(gè)類,C3p0DataSourceFactory,并實(shí)現(xiàn)DataSourceFactory接口,里面的代碼是Java代碼
private DataSource dataSource;  
 
public DataSource getDataSource() {  
    return dataSource;  
}  
 
public void initialize(Map map) {  
    C3p0Configuration c3p0 = new C3p0Configuration(map);  
    dataSource = c3p0.getDataSource();  

 private DataSource dataSource;
 
 public DataSource getDataSource() {
  return dataSource;
 }

 public void initialize(Map map) {
  C3p0Configuration c3p0 = new C3p0Configuration(map);
     dataSource = c3p0.getDataSource();
 }


在ibatis下加入c3p0連接池的下一步是到com.ibatis.common.jdbc包里,新建類C3p0Configuration,里面的代碼是。。。太長(zhǎng)了,原來在dbcp那部分里,還有單獨(dú)加載配置文件的方法,我覺得如果連這個(gè)xml都讀不了,那別的一樣沒法讀。
Java代碼
    private static final Probe PROBE = ProbeFactory.getProbe();  
    private DataSource dataSource;  
 
    /** 
     * Constructor to supply a map of properties 
     *  
     * @param properties 
     *            - the map of configuration properties 
     */ 
    public C3p0Configuration(Map properties) {  
        try {  
            dataSource = legacyC3p0Configuration(properties);  
        } catch (Exception e) {  
            throw new RuntimeException(  
                    "Error initializing C3p0DataSourceFactory.  Cause: " + e, e);  
        }  
    }  
 
    /** 
     * Getter for DataSource 
     *  
     * @return The DataSource 
     */ 
    public DataSource getDataSource() {  
        return dataSource;  
    }  
 
    private boolean notEmpty(String s) {  
        return s != null && s.length() > 0;  
    }  
 
    private boolean notSelfString(String s, String compareStr) {  
        return !s.equalsIgnoreCase(compareStr);  
    }  
 
    private DataSource legacyC3p0Configuration(Map map) {  
 
        ComboPooledDataSource combo = null;  
 
        try {  
            if (map.containsKey("JDBC.Driver")) {  
 
                combo = new ComboPooledDataSource();  
 
                String driverClass = (String) map.get("JDBC.Driver");  
                String jdbcUrl = (String) map.get("JDBC.ConnectionURL");  
                String user = (String) map.get("JDBC.Username");  
                String password = (String) map.get("JDBC.Password");  
 
                Class.forName(driverClass);  
                combo.setDriverClass(driverClass);  
                combo.setJdbcUrl(jdbcUrl);  
                combo.setUser(user);  
                combo.setPassword(password);  
 
                String acquireIncrement = (String) map  
                        .get("Pool.acquireIncrement");  
                if (notEmpty(acquireIncrement)  
                        && notSelfString(acquireIncrement, "acquireIncrement"))  
                    combo.setAcquireIncrement(Integer  
                            .parseInt(acquireIncrement));  
 
...................... 

 private static final Probe PROBE = ProbeFactory.getProbe();
 private DataSource dataSource;

 /**
  * Constructor to supply a map of properties
  *
  * @param properties
  *            - the map of configuration properties
  */
 public C3p0Configuration(Map properties) {
  try {
   dataSource = legacyC3p0Configuration(properties);
  } catch (Exception e) {
   throw new RuntimeException(
     "Error initializing C3p0DataSourceFactory.  Cause: " + e, e);
  }
 }

 /**
  * Getter for DataSource
  *
  * @return The DataSource
  */
 public DataSource getDataSource() {
  return dataSource;
 }

 private boolean notEmpty(String s) {
  return s != null && s.length() > 0;
 }

 private boolean notSelfString(String s, String compareStr) {
  return !s.equalsIgnoreCase(compareStr);
 }

 private DataSource legacyC3p0Configuration(Map map) {

  ComboPooledDataSource combo = null;

  try {
   if (map.containsKey("JDBC.Driver")) {

    combo = new ComboPooledDataSource();

    String driverClass = (String) map.get("JDBC.Driver");
    String jdbcUrl = (String) map.get("JDBC.ConnectionURL");
    String user = (String) map.get("JDBC.Username");
    String password = (String) map.get("JDBC.Password");

    Class.forName(driverClass);
    combo.setDriverClass(driverClass);
    combo.setJdbcUrl(jdbcUrl);
    combo.setUser(user);
    combo.setPassword(password);

    String acquireIncrement = (String) map
      .get("Pool.acquireIncrement");
    if (notEmpty(acquireIncrement)
      && notSelfString(acquireIncrement, "acquireIncrement"))
     combo.setAcquireIncrement(Integer
       .parseInt(acquireIncrement));

......................


***在com.ibatis.sqlmap.engine.config包里,找到SqlMapConfiguration,在里面找到,加上C3P0就可以實(shí)現(xiàn)在ibatis下加入c3p0連接池了
Java代碼
// DATA SOURCE ALIASES  
typeHandlerFactory.putTypeAlias("SIMPLE", SimpleDataSourceFactory.class.getName());  
typeHandlerFactory.putTypeAlias("DBCP", DbcpDataSourceFactory.class.getName());  
typeHandlerFactory.putTypeAlias("C3P0", C3p0DataSourceFactory.class.getName());  
typeHandlerFactory.putTypeAlias("JNDI", JndiDataSourceFactory.class.getName());

通過這種手段,可以在ibatis下加入c3p0連接池,但是由于代碼太長(zhǎng),在這里就不一一列出了,本文只是提出了一個(gè)在ibatis下加入c3p0連接池的思路,具體關(guān)于ibatis下加入c3p0連接池代碼還需要朋友們自己斟酌。

【編輯推薦】

  1. ibatis也能用proxool連接池
  2. 實(shí)例說明ibatis動(dòng)態(tài)查詢
  3. 避免ibatisN+1查詢的方法
  4. ibatis級(jí)聯(lián)解決登錄系統(tǒng)問題
  5. ibatis標(biāo)簽詳解
責(zé)任編輯:桑丘 來源: 奈何橋收費(fèi)站。。。blog
相關(guān)推薦

2009-09-22 17:53:09

Hibernate C

2009-09-22 14:44:18

Hibernate.c

2015-10-29 16:59:47

數(shù)據(jù)庫

2018-07-20 14:50:43

Java數(shù)據(jù)庫連接池

2020-03-04 13:55:28

c3p0數(shù)據(jù)庫連接池

2009-06-17 09:34:31

Hibernate3Hibernate2連接池

2021-05-12 07:32:58

數(shù)據(jù)庫C3P0項(xiàng)目

2015-04-27 09:50:45

Java Hibern連接池詳解

2009-07-15 11:00:48

proxool連接池

2009-09-22 14:52:55

Hibernate p

2010-07-08 10:06:43

Tomcat+SQL

2013-06-17 10:25:16

連接池Java

2010-07-20 14:50:42

Tomcat+SQL

2010-11-08 16:46:57

2023-09-01 07:31:24

2011-05-13 09:34:51

TomcatMysql連接池

2019-12-30 15:30:13

連接池請(qǐng)求PHP

2022-07-19 13:51:47

數(shù)據(jù)庫Hikari連接池

2009-09-23 14:00:07

Hibernate連接

2010-10-22 09:32:01

SQL Server2
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 91免费观看国产 | 亚洲一区二区中文字幕在线观看 | 91视频在线看 | av官网在线| 亚洲精品久久久久久久久久久久久 | 男女视频91 | 最新中文字幕 | 精品视频在线观看 | 国产精品久久二区 | 欧美精品一区二区三区四区 在线 | 久久首页 | 日韩成人精品在线观看 | 亚洲一区二区三区四区视频 | 亚洲福利在线观看 | 亚洲男人的天堂网站 | 日韩在线精品视频 | 久久国产香蕉 | 成人欧美一区二区三区在线播放 | 亚洲国产成人久久久 | 亚洲a视频 | 婷婷桃色网 | 午夜激情视频 | 91黄在线观看 | 国产一区二区三区四区五区加勒比 | 国产在线一区二区 | 中文字幕在线一区二区三区 | 精品96久久久久久中文字幕无 | 久久久久国产一区二区三区 | www亚洲免费国内精品 | 久久精品av麻豆的观看方式 | 欧美精品一区二区三区在线 | 狠狠婷婷综合久久久久久妖精 | 欧美中文字幕 | 亚洲免费高清 | 欧美精品一区二区三区四区 在线 | 国产一区亚洲 | 一区二区视频在线 | 国产色在线 | 国产精品明星裸体写真集 | 久草免费在线 | 久久久久久高潮国产精品视 |