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 MapqueryMap(String sql, Object params[]) { Map 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
使用方式:
public ListgetDjNsrxxList(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 ) QrUtil.getInstance().queryBeanList(sb.toString(), params, DjNsrxx.class); }