DBUtils框架ResultSetHandler接口学习

Posted g-cl

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了DBUtils框架ResultSetHandler接口学习相关的知识,希望对你有一定的参考价值。

今儿在学习spring框架的时候,让我想起来之前做项目时一直搁置的一个问题,就是DBUtils框架的做数据库操作的使用,当时制作项目的时候就是通过实例打了一遍,由于时间原因也并没有仔细去了解这一方面。所以,今天来学习下对于这方面的使用。

通过查阅资料发现QueryRunner类的基本CRUD的使用
以下是我摘下来的一些认为重要的点
QueryRunner中一共有6种方法:
  • execute(执行SQL语句)
  • batch(批量处理语句)
  • insert(执行INSERT语句)
  • insertBatch(批量处理INSERT语句)
  • query(SQL中 SELECT 语句)
  • update(SQL中 INSERT, UPDATE, 或 DELETE 语句)
我们主要介绍最后两种(最常用):
query方法
  1. T query(String sql, ResultSetHandler rsh) 不需要替换参数来执行已给予的SELECT语句
  2. T query(String sql, ResultSetHandler rsh, Object... params) 需要一个或多个替换参数来执行已给予的SELECT语句,并返回一种对象结果
update方法
  1. int update(Connection conn, String sql) 不需要替换参数来执行INSERT, UPDATE DELETE语句
  2. int update(Connection conn, String sql, Object... params) 需要一个或多个替换参数以及一个数据库连接来执行INSERT, UPDATE DELETE语句
  3. int update(Connection conn, String sql, Object param) 需要一个替换参数,以及一个数据库连接来执行INSERT, UPDATE DELETE语句
  4. int update(String sql) 不需要替换参数来执行已给予的INSERT, UPDATE DELETE语句
  5. int update(String sql, Object... params) 需要一个或多个替换参数来执行INSERT, UPDATE DELETE语句(参数无需带有连接)
  6. int update(String sql, Object param) 不需要替换参数来执行INSERT, UPDATE DELETE语句(参数无需带有连接)
技术图片
更新方法
技术图片
查找方法

下面是ResultSetHandler接口的使用
来自大佬的分享
ResultSetHandler接口 该接口用于处理java.sql.ResultSet,将数据按要求转换为另一种形式。 ResultSetHandler接口提供了一个单独的方法:Object handle(java.sql.ResultSet.rs)。 ResultSetHandler接口的实现类 ArrayHandler:把结果集中的第一行数据转换成对象数组。 ArrayListHandler:把结果集中的每一行数据都转换成一个对象数组,再存放到List中。 BeanHandler:将结果集中的第一行数据封装到一个对应的JavaBean实例中。 BeanListHandler:将结果集中的每一行数据都封装到一个对应的JavaBean实例中,存放到List里。 MapHandler:将结果集中的第一行数据封装到一个Map里,key是列名,value就是对应的值。 MapListHandler:将结果集中的每一行数据都封装到一个Map里,然后再存放到List。 ColumnListHandler:将结果集中某一列的数据存放到List中。 KeyedHandler(name):将结果集中的每一行数据都封装到一个Map里(List),再把这些map再存到一个map里,其key为指定的列。 ScalarHandler:获取结果集中第一行数据指定列的值,常用来进行单值查询
可能有些同学不懂什么事JavaBean,下面给出JavaBean的概念
JavaBean是使用Java语言开发的一个可重用组件,能使html代码与JAVA代码分离,并节省开发时间,简单的说就是一个包含了setter和getter以及至少一个无参构造方法的JAVA类。
//JavaBean的栗子如下 
public class Person { 
    private String name; 
    private int age; 
    public String getName() { return name; }
    public void setName(String name) { this.name = name; } 
    public int getAge() { return age; } 
    public void setAge(int age) { this.age = age; } 
}    

 

 
//查询所有
    public List<Account> findAllAccount() {
        try {
            return runner.query("select * from account", new BeanListHandler<Account>(Account.class));
        } catch (Exception e) {
            throw new RuntimeException(e);
        }
    }
    // 返回Account的集合

 


//通过Id查询 
    public Account findAccountById(Integer accountId) {
        try {
            return runner.query("select * from account where id = ? ", new BeanHandler<Account>(Account.class), accountId);
        } catch (Exception e) {
            throw new RuntimeException(e);
        }
    }
    // 返回一个Account的结果

 

 
已上就是我通过总结大佬的分享,对ResultSetHandler的理解。
技术图片
谢谢大家的观看~

以上是关于DBUtils框架ResultSetHandler接口学习的主要内容,如果未能解决你的问题,请参考以下文章

DBUtils框架ResultSetHandler接口学习

commons-dbutils学习——QueryRunner类和ResultSetHandler接口介绍

Apache—DBUtils框架简介

开源框架:DBUtils使用详解

使用DbUtils实现增删改查——ResultSetHandler 接口的实现类

DBUtils框架的使用(下)