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);
}
QuerryRunner Tools的更多相关文章
- 解决 Could not find com.android.tools.build:gradle 问题
今天拉同事最新的代码,编译时老是报如下错误: Error:Could not find com.android.tools.build:gradle:2.2.0.Searched in the fol ...
- 免费的精品: Productivity Power Tools 动画演示
Productivity Power Tools 是微软官方推出的 Visual Studio 扩展,被用以提高开发人员生产率.它的出现一定程度上弥补和完善了 Visual Studio 自身的不足, ...
- 2.Kali安装VMware tools(详细+异常处理)
dnt@MT:~$ cd /media/cdrom0 进入光驱内 dnt@MT:/media/cdrom0$ ls 查看当前目录下有哪些内容manifest.txt run_upgrader.sh V ...
- 第三篇:Entity Framework CodeFirst & Model 映射 续篇 EntityFramework Power Tools 工具使用
上一篇 第二篇:Entity Framework CodeFirst & Model 映射 主要介绍以Fluent API来实作EntityFramework CodeFirst,得到了大家一 ...
- Chrome Developer Tools:Timeline Panel说明
一.Timeline panel 概况 Timeline工具栏可以详细检测出Web应用在加载过程中,时间花费情况的概览.这些应用包括下载资源,处理DOM事件, 页面布局渲染或者向屏幕绘制元素. 如下图 ...
- linux-虚拟机centos6.5安装tools
1.在VMWare选VM -> Install VMWare Tools-,就会在桌面出现VMWare Tools图示让你安裝 2.进入CentOS桌面后,将光盘打开,看到了VMWareTool ...
- VMWare Tools 和 Shared folder(共享文件夹)
转自: http://www.51testing.com/html/38/225738-143732.html 使用vmwar下shared folders功能实现vmware中host与ghost间 ...
- 用hibernate tools生成对应的sql应用代码
参考资料: eclipse在线配置hibernate tools http://jingyan.baidu.com/article/db55b609959d154ba20a2f5d.html [图]H ...
- 解决Maven工程中报 Missing artifact jdk.tools:jdk.tools:
jdk.tools:jdk.tools是与JDK一起分发的一个JAR文件,可以如下方式加入到Maven项目中:<dependency> <groupId>jdk.tool ...
随机推荐
- C/C++中如何获取数组的长度?
C.C++中没有提供 直接获取数组长度的函数,对于存放字符串的字符数组提供了一个strlen函数获取长度,那么对于其他类型的数组如何获取他们的长度呢?其中一种方法是使 用sizeof(array) / ...
- H5页开发规范/通用规范
兼容目标 主流移动设备:iPhone 4+ .三星.魅族.华为.红米.小米1S 以上及主流 Android 千元机型:请特别关注iPhone4/4s.魅族MX4.华为P6等机型 操作系统:iOS 7. ...
- 使用MJRefresh遇到的坑
在使用MJRefresh的时候,下拉刷新表头停在了上部,箭头并没有隐藏 解决方法:进行数据请求的时候不要使用 beginRefresh方法,要直接调用方法进行数据请求
- 获取Android自己写好了的apk以及反编译
今天,我们先说一下,获取Android自带的apk以及反编译它们来学习Android工程师是怎样写的,今天我们就以拿到Android自带的短信管理器的apk为例子 你可能有疑问,为什么要那么麻烦,从系 ...
- [转] thrift的使用介绍
http://gemantic.iteye.com/blog/1199214 一.About thrift 二.什么是thrift,怎么工作? 三.Thrift IDL 四.Thrift ...
- 【Android】无限滚动的HorizontalScrollView
这是一个很简单的功能,作为新手,做一下笔记.也给其它有需要的人提供一个参考. 首先HorizontalScrollView都知道用途了.它可以实现类似“桌面程序”左右切换页的效果.一般情况下里面的页数 ...
- Creating Lists and Cards 创建列表和卡片
To create complex lists and cards with material design styles in your apps, you can use the Recycler ...
- 线段树---HDU1754 I hate it
这个题也是线段树的基础题,有了上一个题的基础,在做这个题就显得比较轻松了,大体都是一样的,那个是求和,这个改成求最大值,基本上思路差不多,下面是代码的实现 #include <cstdio> ...
- spring-data-redis问题总结
如何判断一个字符串是否是合法的long类型? 参考文档如下: http://www.oschina.net/question/59889_45179 spring-data-redis http:// ...
- Android开发中在一个Activity中关闭另一个Activity
比如有ActivityA, ActivityB,在ActivityB中关闭ActivityA 解决方案: 1. 在 ActivityA 里面设置一个静态的变量instance,初始化为this在 Ac ...