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);
        }
  • 相关阅读:
    一个好的时间函数
    Codeforces 785E. Anton and Permutation
    Codeforces 785 D. Anton and School
    Codeforces 510 E. Fox And Dinner
    Codeforces 242 E. XOR on Segment
    Codeforces 629 E. Famil Door and Roads
    Codeforces 600E. Lomsat gelral(Dsu on tree学习)
    Codeforces 438D The Child and Sequence
    Codeforces 729E Subordinates
    【ATcoder】D
  • 原文地址:https://www.cnblogs.com/yshyee/p/4491916.html
Copyright © 2011-2022 走看看