dbUtils 工具类介绍

摘要:
包指南:commons-dbutils.jar核心类:QueryRunner commonmethods://Executeadd、delete和modify语句,并返回受影响的行数intupdate(Stringsql,Object…params)//执行add、delete、modify语句但调用者需要提供Connection对象并支持事务。intupdate(Connection,Stringsql,Object…params)//执行查询方法//返回值类型
  1. 导包: commons-dbutils.jar
  2. 核心类: QueryRunner
  3. 常用方法:
// 执行增,删,改语句, 返回影响的行数
    int update(String sql,Object... params);

// 执行增, 删, 改语句, 但是需要调用者提供 Connection 对象, 支持事务.
    int update(Connection ,String sql, Object... params);

// 执行查询方法
// 返回值类型为 T, 因为 ResultSetHandler 中的 handle 方法会把 ResultSet 结果集转换为 T 类型
    T query(String sql, ResultSetHandler rsh, Object...params);

// 执行查询方法, 但是需要调用者提供 Connection 对象, 支持事务
    T query(Connection con, String sql, ResultSetHandler rsh, Object... params);

4. ResultSetHandler 接口的实现类

  • 单行结果: BeanHandler(), 构造器需要一个 Class 类型的参数, 用来把一行结果转换成指定类型的 javaBean 对象;
  • 多行结果: BeanListHandler(), 构造器需要一个 Class 类型的参数, 用来把一行结果转换成一个 javaBean,
    若是多行结果, 就转换成 List 对象, 即多个 javaBean;
  • 单行结果: MapHandler(), 把一行结果转换成 Map;
  • 多行结果: MapListHandler(), 把一行记录转换成一个 Map, 若是多行, 就是多个 Map, 即 List;
  • 单行单列: ScalarHandler(), 结果集是单行单列的, 返回一个 Object.
    通常用于 SELECT count(*) FROM t_stu;
单行记录

dbUtils 工具类介绍第1张

Map 集合

{sid:1001,sname:zhangsan,age:22,gender:male}

// 示例

    // BeanHandler()  和 MapHandler()
    public void fun() throws Exception{
        QueryRunner qr = new QueryRunner(JdbcUtils.getDataSource());

        String sql = "SELECT * FROM t_stu WHERE sid=?";

        Object[] params = {1001};

        // BeanHandler()
        Stu stu = qr.query(sql,new BeanHandler<Stu>(stu.class),params);

        System.out.println(stu);

        // MapHandler()
        Map map = qr.query(sql,new MapHandler(),params);
        System.out.println(map);
    }

    // BeanListHandler() 和 MapListHandler()
    public void fun1() throws SQLException{
        QueryRunner qr = new QueryRunner(JdbcUtils.getDataSource());

        String sql = "SELECT * FROM t_stu";

        // BeanListHandler()
        List<Stu> stuList = qr.query(sql, new BeanListHandler<Stu>(Stu.class));
        System.out.println(stuList);

        // MapListHandler()
        List<Map<String,Object>> mapList = qr.query(sql, new MapListHandler());
        Sytem.out.println(mapList);
    }

    // ScalarHandler()
    public void fun2() throws SQLException{
        QueryRunner qr = new QueryRunner(JdbcUtils.getDataSource());

        String sql = "SELECT COUNT(*) FROM t_stu";

        // 此处 obj 类型可能为 Integer, Long, BigInteger
        // 但是这三种类型有共同的父类 Number
        Number obj = (Number)qr.query(sql,new ScalarHandler());

        System.out.println(obj);
    }

参考资料:

免责声明:文章转载自《dbUtils 工具类介绍》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇车牌识别(end-to-end-for-chinese-plate-recognition)项目搭建基于Mxnet(Python 3.5)信息系统设计下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Ali OSS服务端签名直传并设置上传回调

服务端签名直传并设置上传回调 背景 请参考Web端直传实践里的背景介绍。 当采用服务端签名后直传方案后,问题来了,用户上传数据后,很多场景下,应用服务器都要知道用户上传了哪些文件,文件名字,甚至如果是图片的话,图片的大小等。为此OSS开发了上传回调功能。 用户的请求逻辑 用户向应用服务器取到上传policy和回调设置。 应用服务器返回上传policy和...

MS COCO 数据集学习笔记(Common Objects in COntext)

一、数据来源 COCO中图片资源均引用自Flickr图片网站 二、数据集创建目的 进行图像识别训练,主要针对以下三个方向: (1)object instances (2)object keypoints (3)image captions 每个方向均包含训练和验证集两个标注文件 三、标注体结构 三个方向均共享基本类型信息,包括info、image、lice...

unity3D游戏开发十四之NGUI一

转:http://blog.csdn.net/kuloveyouwei/article/details/23676039 在Unity中,可以使用代码控制其自身所携带的GUI来实现图形界面的搭建。但是这些组件的搭建效率很低,而且已经无法满足现在市场对图形用户界面美感的要求,所以,引入了NGUI来增加所要开发的图形用户界面的美感。NGUI是一个功能强大的UI...

Javassist实现动态代理

介绍 Javassist 也是一个字节码框架,和其他字节码框架不同的是,它提供了两种层级的API,源层级和字节码层级,源层级不需要对字节码规则了解太多就可以操作。Hibernate的懒加载就使用到了Javassist。官网 使用Javassist提供的动态代理接口实现 maven依赖 <dependency> <groupId>...

MSSQL 触发器

---触发器练习 --在SQL Server里面也就是对某一个表的一定的操作,触发某种条件,从而执行的一段程序 CREATE TABLE Student ( SID INT PRIMARY KEY --学号 ) CREATE TABLE BorrowRecord ( --学生借书记录表...

QTP的基本功能介绍

• QTP的基本功能介绍 HP QuickTest Professional 支持功能測试和回归測试自己主动化,用于每一个主要软件应用程序和环境。此解决方式使用keyword驱动的測试概念,简化了測试创建和维护过程。它使測试人员可以使用专业的捕获技术直接从应用程序屏幕中捕获流程来构建測试案例。測试专家还可通过集成的脚本和调试环境全然訪问内在測试和对象属...