打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
commons-dbutils的封装方法
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.     //打开   
  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.     //关闭连接   
  43.   
  44.     public void Close(Connection conn) {   
  45.         DbUtils.closeQuietly(conn);   
  46.         //ShutdownPool();   
  47.     }   
  48.     /**     
  49.      * 连接池启动     
  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.     // 获得数据库连接   
  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.     //执行查询方法(使用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.     //执行查询方法(使用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.     //执行查询方法(使用)   
  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.     //查询单个数据   
  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
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
Dbutils 的介绍与使用
org.apache.commons.dbcp (Commons DBCP 1.3-SNAPSHOT API)
利用Jakarta Commons组件beanutils、dbutils简化JDBC数据库操作(二)
高性能jdbc封装工具 Apache Commons DbUtils 1.6(转载)
Apache Commons工具集简介
JDBC-数据连接池的使用
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服