zoukankan      html  css  js  c++  java
  • 数据库工具类

      1 package cn.sunny.utils;
      2 
      3 import java.io.IOException;
      4 import java.io.InputStream;
      5 import java.sql.Connection;
      6 import java.sql.DriverManager;
      7 import java.sql.SQLException;
      8 import java.util.List;
      9 import java.util.Map;
     10 import java.util.Properties;
     11 
     12 import org.apache.commons.collections.MapUtils;
     13 import org.apache.commons.dbcp.BasicDataSource;
     14 import org.apache.commons.dbutils.BasicRowProcessor;
     15 import org.apache.commons.dbutils.BeanProcessor;
     16 import org.apache.commons.dbutils.QueryRunner;
     17 import org.apache.commons.dbutils.handlers.ArrayHandler;
     18 import org.apache.commons.dbutils.handlers.ArrayListHandler;
     19 import org.apache.commons.dbutils.handlers.BeanHandler;
     20 import org.apache.commons.dbutils.handlers.BeanListHandler;
     21 import org.apache.commons.dbutils.handlers.ColumnListHandler;
     22 import org.apache.commons.dbutils.handlers.KeyedHandler;
     23 import org.apache.commons.dbutils.handlers.MapHandler;
     24 import org.apache.commons.dbutils.handlers.MapListHandler;
     25 import org.apache.commons.dbutils.handlers.ScalarHandler;
     26 import org.apache.log4j.Logger;
     27 
     28 
     29 /**
     30  * 数据库CRUD工具br>
     31  * 数据库配置db.properties文件
     32  * @author chenyangguang
     33  * @date 2015-5-27上午09:13:48
     34  */
     35 public class DBUtil {
     36     
     37     private static Logger log = Logger.getLogger(DBUtil.class);
     38     
     39     private static String username;
     40     private static String password;
     41     
     42     private static String driver;
     43     private static String url;
     44     
     45     private static BasicDataSource ds = null;
     46     
     47     static{
     48         Properties prop = new Properties();
     49         InputStream in = DBUtil.class.getResourceAsStream("/db.properties");
     50         try {
     51             prop.load(in);
     52             username = prop.getProperty("db.username");
     53             password = prop.getProperty("db.password");
     54             String dbType = prop.getProperty("db.type");
     55             String host = prop.getProperty("db.ip");
     56             String port = prop.getProperty("db.port");
     57             String dbName = prop.getProperty("db.name");
     58             
     59             if ("MySQL".equalsIgnoreCase(dbType)) {
     60                 driver = "com.mysql.jdbc.Driver";
     61                 url = "jdbc:mysql://" + host + ":" + port + "/" + dbName;
     62             } else if ("Oracle".equalsIgnoreCase(dbType)) {
     63                 driver = "oracle.jdbc.driver.OracleDriver";
     64                 url = "jdbc:oracle:thin:@" + host + ":" + port + ":" + dbName;
     65             } else if ("SQLServer".equalsIgnoreCase(dbType)) {
     66                 driver = "com.microsoft.sqlserver.jdbc.SQLServerDriver";
     67                 url = "jdbc:sqlserver://" + host + ":" + port + ";databaseName=" + dbName;
     68             } else if ("PostgresSQL".equalsIgnoreCase(dbType)) {
     69                 driver = "org.postgresql.Driver";
     70                 url = "jdbc:postgresql://"+host+":"+port+"/"+dbName;
     71             }
     72         } catch (IOException e) {
     73             log.error("获取数据库连接失败",e);
     74         }
     75     }
     76     
     77     private static BasicDataSource getDataSource(){
     78         if (ds == null) {
     79             ds = new BasicDataSource();
     80             ds.setDriverClassName(driver);  
     81             ds.setUsername(username);  
     82             ds.setPassword(password);  
     83             ds.setUrl(url);  
     84         }
     85         return ds;
     86     }
     87     
     88     private static QueryRunner getQueryRunner(){
     89         return new QueryRunner(getDataSource());
     90     }
     91     
     92     
     93     public static Connection openConn(){
     94          Connection conn = null;
     95          try {
     96             Class.forName(driver);
     97             conn = DriverManager.getConnection(url, username, password);
     98         } catch (ClassNotFoundException e) {
     99             log.error("数据库驱动加载失败",e);
    100         } catch (SQLException e) {
    101             log.error("获取数据库连接失败",e);
    102         }
    103         return conn;
    104     }
    105 
    106 
    107     // 查询(返回Array结果)
    108     public static Object[] queryArray(String sql, Object... params) throws SQLException {
    109         Object[] result = null;
    110         try {
    111             result = getQueryRunner().query(sql, new ArrayHandler(), params);
    112         } catch (SQLException e) {
    113             throw e;
    114         }
    115         return result;
    116     }
    117 
    118     // 查询(返回ArrayList结果)
    119     public static List<Object[]> queryArrayList(String sql, Object... params) throws SQLException {
    120         List<Object[]> result = null;
    121         try {
    122             result = getQueryRunner().query(sql, new ArrayListHandler(), params);
    123         } catch (SQLException e) {
    124             throw e;
    125         }
    126         return result;
    127     }
    128 
    129     // 查询(返回Map结果)
    130     public static Map<String, Object> queryMap(String sql, Object... params) {
    131         Map<String, Object> result = null;
    132         try {
    133             result = getQueryRunner().query( sql, new MapHandler(), params);
    134         } catch (SQLException e) {
    135             e.printStackTrace();
    136         }
    137         return result;
    138     }
    139     
    140     /**
    141      * 查询(返回MapList结果)
    142      * @param sql
    143      * @return
    144      */
    145     public static List<Map<String, Object>> queryMapList(String sql) {
    146         List<Map<String, Object>> result = null;
    147         try {
    148             result = getQueryRunner().query( sql, new MapListHandler());
    149         } catch (SQLException e) {
    150             e.printStackTrace();
    151         }
    152         return result;
    153     }
    154     
    155 
    156     /**
    157      * 查询(返回MapList结果)
    158      * @param sql
    159      * @param params
    160      * @return
    161      */
    162     public static List<Map<String, Object>> queryMapList(String sql, Object... params) {
    163         List<Map<String, Object>> result = null;
    164         try {
    165             result = getQueryRunner().query( sql, new MapListHandler(), params);
    166         } catch (SQLException e) {
    167             e.printStackTrace();
    168         }
    169         return result;
    170     }
    171 
    172     /**
    173      * 查询(返回Bean结果)
    174      * @param <T>
    175      * @param cls
    176      * @param map
    177      * @param sql
    178      * @param params
    179      * @return
    180      */
    181     public static <T> T queryBean(Class<T> cls, Map<String, String> map, String sql, Object... params) {
    182         T result = null;
    183         try {
    184             if (MapUtils.isNotEmpty(map)) {
    185                 result = getQueryRunner().query( sql, new BeanHandler<T>(cls, new BasicRowProcessor(new BeanProcessor(map))), params);
    186             } else {
    187                 result = getQueryRunner().query( sql, new BeanHandler<T>(cls), params);
    188             }
    189         } catch (SQLException e) {
    190             e.printStackTrace();
    191         }
    192         return result;
    193     }
    194 
    195     // 查询(返回BeanList结果)
    196     public static <T> List<T> queryBeanList(Class<T> cls, Map<String, String> map, String sql, Object... params) throws SQLException {
    197         List<T> result = null;
    198         try {
    199             if (MapUtils.isNotEmpty(map)) {
    200                 result = getQueryRunner().query( sql, new BeanListHandler<T>(cls, new BasicRowProcessor(new BeanProcessor(map))), params);
    201             } else {
    202                 result = getQueryRunner().query( sql, new BeanListHandler<T>(cls), params);
    203             }
    204         } catch (SQLException e) {
    205             throw e;
    206         }
    207         return result;
    208     }
    209 
    210     // 查询指定列名的)(单条数据)
    211     public static <T> T queryColumn(String column, String sql, Object... params) throws SQLException {
    212         T result = null;
    213         try {
    214             result = getQueryRunner().query(sql, new ScalarHandler<T>(column), params);
    215         } catch (SQLException e) {
    216             throw e;
    217         }
    218         return result;
    219     }
    220 
    221     // 查询指定列名的)(多条数据)
    222     public static <T> List<T> queryColumnList(String column, String sql, Object... params) throws SQLException {
    223         List<T> result = null;
    224         try {
    225             result = getQueryRunner().query(sql, new ColumnListHandler<T>(column), params);
    226         } catch (SQLException e) {
    227             throw e;
    228         }
    229         return result;
    230     }
    231 
    232     // 查询指定列名对应的记录映)
    233     public static <T> Map<T, Map<String, Object>> queryKeyMap(String column, String sql, Object... params) throws SQLException {
    234         Map<T, Map<String, Object>> result = null;
    235         try {
    236             result = getQueryRunner().query( sql, new KeyedHandler<T>(column), params);
    237         } catch (SQLException e) {
    238             throw e;
    239         }
    240         return result;
    241     }
    242     
    243     
    244     
    245     public static int update(String sql) throws SQLException{
    246         int result = 0;
    247         try {
    248             result = getQueryRunner().update( sql);
    249         } catch (SQLException e) {
    250             throw e;
    251         }
    252         return result;
    253     }
    254     
    255     public static int update(String sql,Object param) throws SQLException{
    256         int result = 0;
    257         try {
    258             result = getQueryRunner().update(sql, param);
    259         } catch (SQLException e) {
    260             throw e;
    261         }
    262         return result;
    263     }
    264 
    265     /**
    266      *  更新(包括UPDATE、INSERT、DELETE,返回受影响的行数)
    267      * @param sql
    268      * @param params
    269      * @return
    270      * @throws SQLException
    271      */
    272     public static int update(String sql, Object... params) throws SQLException {
    273         int result = 0;
    274         try {
    275             result = getQueryRunner().update(sql, params);
    276         } catch (SQLException e) {
    277             throw e;
    278         }
    279         return result;
    280     }
    281     
    282     public static void main(String[] args) {
    283         QueryRunner q = getQueryRunner();
    284         System.out.println(q.getDataSource());
    285         List<Map<String, Object>> list = queryMapList("select * from ac_device_basic");
    286         System.out.println(list.toString());
    287     }
    288     
    289 }
    db.type=PostgresSQL
    db.ip=127.0.0.1
    db.port=5432
    db.name=cms_db
    db.username=postgres
    db.password=88075998
  • 相关阅读:
    转:SQL Case when 的使用方法
    转:性能测试知多少
    转:如何让LoadRunner实现多个场景运行?
    转:Loadrunner学习知多少--脚本录制下载操作
    1.3 本章小结
    1.2.5 内部元数据
    1.2.4 创建图像查看应用程序
    1.2.3 使用MediaStore检索图像
    1.2.2 更新CameraActivity以使用MediaStore存储图像和关联元数据
    1.2.1 获得图像的Uri
  • 原文地址:https://www.cnblogs.com/chyg/p/5198247.html
Copyright © 2011-2022 走看看