一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

commons-dbutils的封裝方法

 用勿龍潛 2012-07-16
commons-dbutils的封裝方法
 
package com.sidi.util;   
  1.   
  2. import java.sql.Connection;   
  3. import java.sql.DriverManager;   
  4. import java.sql.SQLException;   
  5. import java.util.List;   
  6.   
  7. import org.apache.commons.dbcp.ConnectionFactory;   
  8. import org.apache.commons.dbcp.DriverManagerConnectionFactory;   
  9. import org.apache.commons.dbcp.PoolableConnectionFactory;   
  10. import org.apache.commons.dbcp.PoolingDriver;   
  11. import org.apache.commons.dbutils.DbUtils;   
  12. import org.apache.commons.dbutils.QueryRunner;   
  13. import org.apache.commons.dbutils.handlers.BeanHandler;   
  14. import org.apache.commons.dbutils.handlers.BeanListHandler;   
  15. import org.apache.commons.dbutils.handlers.MapListHandler;   
  16. import org.apache.commons.pool.ObjectPool;   
  17. import org.apache.commons.pool.impl.GenericObjectPool;   
  18.   
  19. public class MyDbutil {   
  20.     private String dri = "com.mysql.jdbc.Driver";   
  21.     private String url = "jdbc:mysql://localhost:3306/myout?autoReconnect=true&useUnicode=true&characterEncoding=UTF-8";   
  22.     private String username = "root";   
  23.     private String password = "";   
  24.     private volatile static MyDbutil faction = null;   
  25.     private static ObjectPool connectionPool = null;   
  26.   
  27.     private MyDbutil() {   
  28.           
  29.     }   
  30.     //打開(kāi)   
  31.   
  32.     public static MyDbutil Open() {   
  33.         while (faction == null) {   
  34.             synchronized(MyDbutil.class){   
  35.                  if (faction == null) {   
  36.                      faction = new MyDbutil();   
  37.                  }   
  38.             }   
  39.         }   
  40.         return faction;   
  41.     }   
  42.     //關(guān)閉連接   
  43.   
  44.     public void Close(Connection conn) {   
  45.         DbUtils.closeQuietly(conn);   
  46.         //ShutdownPool();   
  47.     }   
  48.     /**     
  49.      * 連接池啟動(dòng)     
  50.      * @throws Exception     
  51.      */       
  52.     public void StartPool() {      
  53.         try {   
  54.             Class.forName(dri);   
  55.         } catch (ClassNotFoundException e1) {   
  56.             // TODO Auto-generated catch block   
  57.             e1.printStackTrace();   
  58.         }   
  59.         if (connectionPool != null) {       
  60.             ShutdownPool();       
  61.         }        
  62.         try {   
  63.             connectionPool = new GenericObjectPool(null);   
  64.             ConnectionFactory connectionFactory = new DriverManagerConnectionFactory(url,username,password);   
  65.             PoolableConnectionFactory poolableConnectionFactory = new PoolableConnectionFactory(connectionFactory, connectionPool, null"SELECT 1 as a"falsetrue);       
  66.             Class.forName("org.apache.commons.dbcp.PoolingDriver");       
  67.             PoolingDriver driver = (PoolingDriver) DriverManager.getDriver("jdbc:apache:commons:dbcp:");       
  68.             driver.registerPool("dbpool2", connectionPool);                    
  69.             System.out.println("裝配連接池OK");       
  70.         } catch (Exception e) {       
  71.             e.printStackTrace();      
  72.         }       
  73.     }   
  74.     /**     
  75.      * 釋放連接池     
  76.      */       
  77.     public static void ShutdownPool() {       
  78.         try {       
  79.             PoolingDriver driver = (PoolingDriver) DriverManager.getDriver("jdbc:apache:commons:dbcp:");       
  80.             driver.closePool("dbpool2");   
  81.         } catch (SQLException e) {       
  82.             e.printStackTrace();      
  83.         }       
  84.     }       
  85.       
  86.     // 獲得數(shù)據(jù)庫(kù)連接   
  87.   
  88.     public synchronized Connection getConnection() {   
  89.         Connection conn = null;   
  90.         try {   
  91.             if(connectionPool == null)       
  92.                 StartPool();   
  93.             conn = DriverManager.getConnection("jdbc:apache:commons:dbcp:dbpool2");   
  94.         } catch (Exception e) {   
  95.             e.printStackTrace();   
  96.         }   
  97.         return conn;   
  98.     }   
  99.     //執(zhí)行查詢方法(使用map)   
  100.   
  101.     public List query(String sql) {   
  102.         List results = null;   
  103.         Connection conn = null;   
  104.         try {   
  105.             conn = getConnection();   
  106.             QueryRunner qr = new QueryRunner();   
  107.             results = (List) qr.query(conn, sql, new MapListHandler());   
  108.         } catch (SQLException e) {   
  109.             e.printStackTrace();   
  110.         } finally {   
  111.             Close(conn);   
  112.         }   
  113.         return results;   
  114.     }   
  115.     //執(zhí)行查詢方法(使用map)   
  116.   
  117.     public List query(String sql, Object param) {   
  118.         List results = null;   
  119.         Connection conn = null;   
  120.         try {   
  121.             conn = getConnection();   
  122.             QueryRunner qr = new QueryRunner();   
  123.             results = (List) qr.query(conn, sql, param, new MapListHandler());   
  124.         } catch (SQLException e) {   
  125.             e.printStackTrace();   
  126.         } finally {   
  127.             Close(conn);   
  128.         }   
  129.         return results;   
  130.     }   
  131.     //執(zhí)行查詢方法(使用)   
  132.   
  133.     public List query(String sql, Class module) {   
  134.         List results = null;   
  135.         Connection conn = null;   
  136.         try {   
  137.             conn = getConnection();   
  138.             QueryRunner qr = new QueryRunner();   
  139.             results = (List) qr.query(conn, sql, new BeanListHandler(module));   
  140.         } catch (SQLException e) {   
  141.             e.printStackTrace();   
  142.         } finally {   
  143.             Close(conn);   
  144.         }   
  145.         return results;   
  146.     }   
  147.     //查詢單個(gè)數(shù)據(jù)   
  148.   
  149.     public Object get_one(String sql, Class module) {   
  150.         Object results = null;   
  151.         Connection conn = null;   
  152.         try {   
  153.             conn = getConnection();   
  154.             QueryRunner qr = new QueryRunner();   
  155.             results = (Object) qr.query(conn, sql, new BeanHandler(module));   
  156.         } catch (SQLException e) {   
  157.             e.printStackTrace();   
  158.         } finally {   
  159.             Close(conn);   
  160.         }   
  161.         return results;   
  162.     }   
  163.   //增刪改方法   
  164.     public int execute(String sql) throws Exception {   
  165.         Connection conn = getConnection();   
  166.         int rows = 0;   
  167.         try {   
  168.             QueryRunner qr = new QueryRunner();   
  169.             rows = qr.update(conn, sql);   
  170.         } finally {   
  171.             Close(conn);   
  172.         }   
  173.         return rows;   
  174.     }   
  175.     //增刪改方法   
  176.     public int execute(String sql, Object[] params) throws Exception {   
  177.         Connection conn = getConnection();   
  178.         int rows = 0;   
  179.         try {   
  180.             QueryRunner qr = new QueryRunner();   
  181.             rows = qr.update(conn, sql, params);   
  182.         } finally {   
  183.             Close(conn);   
  184.         }   
  185.         return rows;   
  186.     }   
  187. }  




單例,使用了連接池,用到的jar是commons-dbcp-1.2.2.jar  commons-pool-1.3.jar commons-dbutils-1.1.jar

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多

    日本中文字幕在线精品| 免费一区二区三区少妇| 欧美日韩综合免费视频| 中文字幕亚洲精品在线播放| 又黄又硬又爽又色的视频| 免费人妻精品一区二区三区久久久| 九九热在线视频观看最新| 人妻少妇av中文字幕乱码高清| 日韩欧美91在线视频| 免费观看一级欧美大片| 国产精品大秀视频日韩精品| 国产精品免费不卡视频| 中文字幕一区久久综合| 绝望的校花花间淫事2| 91精品视频全国免费| 高清欧美大片免费在线观看| 精品日韩av一区二区三区| 亚洲超碰成人天堂涩涩| 女厕偷窥一区二区三区在线| 91欧美日韩中在线视频| 亚洲熟妇av一区二区三区色堂| 老外那个很粗大做起来很爽| 欧洲亚洲精品自拍偷拍| 亚洲清纯一区二区三区| 午夜日韩在线观看视频| 一区二区三区日韩经典| 国产又色又粗又黄又爽| 精品日韩av一区二区三区| 国产精品久久三级精品| 人妻内射精品一区二区| 樱井知香黑人一区二区| 日本少妇aa特黄大片| 婷婷开心五月亚洲综合| 99久久精品午夜一区| 国产三级黄片在线免费看| 国产一级片内射视频免费播放| 老司机精品福利视频在线播放| 麻豆欧美精品国产综合久久| 日本在线高清精品人妻| 日韩精品在线观看一区| 国产又粗又长又大的视频|