zoukankan      html  css  js  c++  java
  • QuerryRunner Tools

    package com.ydbg.gis.utils;
    
    import java.sql.SQLException;
    import java.util.List;
    import java.util.Map;
    import java.util.logging.Level;
    import java.util.logging.Logger;
    import org.apache.commons.dbutils.QueryRunner;
    import org.apache.commons.dbutils.handlers.BeanHandler;
    import org.apache.commons.dbutils.handlers.BeanListHandler;
    import org.apache.commons.dbutils.handlers.ColumnListHandler;
    import org.apache.commons.dbutils.handlers.MapHandler;
    import org.apache.commons.dbutils.handlers.MapListHandler;
    import org.apache.commons.dbutils.handlers.ScalarHandler;
    import org.apache.commons.lang.NumberUtils;
    
    /**
     * @author  y
     * @date    2015-5-10 10:43:04
     * @version V1.0
     * @desc    QuerryRunner 工具类
     */
    public final class QrUtil {
    
        private static final QueryRunner qr = new QueryRunner();
        
        private static class QrUtilHolder{
            private static final QrUtil instance = new QrUtil();
        }
        
        public static QrUtil getInstance(){
            return QrUtilHolder.instance;
        }
        
        /**
         * 执行 insert,delete,update
         * @param sql
         * @param params
         * @return
         */
        public int update(String sql, Object params[]) {
            int i = -1;
            
            try {
                i = qr.update(TransactionManager.getInstance().get(), sql, params);
            } catch (SQLException ex) {
                Logger.getLogger(QrUtil.class.getName()).log(Level.SEVERE, null, ex);
            } finally{
                TransactionManager.getInstance().close();
            }
            
            return i;
        }
        
        /**
         * 执行多条的 insert,update
         * @param sql
         * @param params
         * @return
         */
        public int batch(String sql, Object params[][]) {
            int i = -1;
            
            try {
                i = qr.batch(TransactionManager.getInstance().get(), sql, params).length;
            } catch (SQLException ex) {
                Logger.getLogger(QrUtil.class.getName()).log(Level.SEVERE, null, ex);
            } finally{
                TransactionManager.getInstance().close();
            }
            
            return i;
        }
        
        /**
         * 查询一个实体Bean,返回结果要进行强制类型转换
         * @param sql
         * @param params
         * @param clazz
         * @return
         */
        public Object queryBean(String sql, Object params[], Class clazz) {
            Object obj = null;
            
            try {
                obj = qr.query(TransactionManager.getInstance().get(), sql, new BeanHandler(clazz), params);
            } catch (SQLException ex) {
                Logger.getLogger(QrUtil.class.getName()).log(Level.SEVERE, null, ex);
            } finally{
                TransactionManager.getInstance().close();
            }
            
            return obj;
        }
        
        /**
         * 查询一个实体Bean Array,返回结果要进行强制类型转换
         * @param sql
         * @param params
         * @param clazz
         * @return
         */
        public Object queryBeanList(String sql, Object params[], Class clazz) {
            Object obj = null;
            
            try {
                obj = qr.query(TransactionManager.getInstance().get(), sql, new BeanListHandler(clazz), params);
            } catch (SQLException ex) {
                Logger.getLogger(QrUtil.class.getName()).log(Level.SEVERE, null, ex);
            } finally{
                TransactionManager.getInstance().close();
            }
            
            return obj;
        }
        
        
        /**
         * 获取一个Map
         * @param sql
         * @param params
         * @return
         */
        public Map<String, Object> queryMap(String sql, Object params[]) {
            Map<String, Object> map = null;
            
            try {
                map = qr.query(TransactionManager.getInstance().get(), sql, new MapHandler(), params);
            } catch (SQLException ex) {
                Logger.getLogger(QrUtil.class.getName()).log(Level.SEVERE, null, ex);
            } finally{
                TransactionManager.getInstance().close();
            }
            
            return map;
        }
        
         /**
         * 获取List<Map<String,Object>>
         * @param sql
         * @param params
         * @return
         */
        public List<Map<String, Object>> queryListMap(String sql, Object params[]){
            List<Map<String, Object>> list = null;
            
            try {
                list = qr.query(TransactionManager.getInstance().get(), sql, new MapListHandler(), params);
            } catch (SQLException ex) {
                Logger.getLogger(QrUtil.class.getName()).log(Level.SEVERE, null, ex);
            } finally{
                TransactionManager.getInstance().close();
            }
            
            return list;
        }
        
        
        /**
         * 进行查询操作,返回一个数值(一般用于select count(id) from table的处理)
         * @param sql
         * @param params
         * @return
         */
        public int queryForInt(String sql, Object params[]){
            Object obj = null;
            
            try {
                obj = qr.query(TransactionManager.getInstance().get(), sql, new ScalarHandler(), params);
            } catch (SQLException ex) {
                Logger.getLogger(QrUtil.class.getName()).log(Level.SEVERE, null, ex);
            } finally{
                TransactionManager.getInstance().close();
            }
            
            return NumberUtils.stringToInt("" + obj, 0);
        }
        
        /**
         * 获取单列值
         * @param sql
         * @param params
         * @return
         */
        public List<String> queryListString(String sql, Object params[]) {
            List<String> list = null;
    
            try {
                list = qr.query(TransactionManager.getInstance().get(), sql, new ColumnListHandler<String>(1), params);
            } catch (SQLException ex) {
                Logger.getLogger(QrUtil.class.getName()).log(Level.SEVERE, null, ex);
            } finally{
                TransactionManager.getInstance().close();
            }
            
            return list;
        }
        
    }

    使用方式:

    public List<DjNsrxx> getDjNsrxxList(int count) {
            sb.setLength(0);
            sb.append(" select nsrdzdah,scjydz from gis_dj_nsrxx ")
                    .append(" where (lng is null or lat is null) and rownum<? ");
            
            Object params[] = {count};
    
            return (List<DjNsrxx>) QrUtil.getInstance().queryBeanList(sb.toString(), params, DjNsrxx.class);
        }
  • 相关阅读:
    计算机系统结构之重要知识点总结2
    计算机系统结构之重要知识点总结1
    蓝桥杯 历届试题 幸运数(暴力打表)
    蓝桥杯 历届试题 网络寻路(dfs搜索合法路径计数)
    蓝桥杯 历届试题 约数倍数选卡片 (经典数论+DFS)
    蓝桥杯 历届试题 九宫重排 (bfs+康托展开去重优化)
    蓝桥杯 历届试题 小朋友排队(数状数组+离散化||归并排序||线段树+离散化)
    poj 1932 XYZZY(spfa最长路+判断正环+floyd求传递闭包)
    pycharm+selenium搭建环境之no module named 'selenium'异常解决
    Web自动化测试—— Selenium+Python Windows环境搭建
  • 原文地址:https://www.cnblogs.com/yshyee/p/4491916.html
Copyright © 2011-2022 走看看