QueryRunner-ResultSetHandler结果集处理类

ResultSetHandler结果集处理类

实现类名称 作用
ArrayHandler 将结果集中的第一条记录封装到一个Object[]数组中,数组中的每一个元素就是这条记录中的每一个字段的值
ArrayListHandler 将结果集中的每一条记录都封装到一个Object[]数组中,将这些数组在封装到List集合中。
BeanHandler 将结果集中第一条记录封装到一个指定的javaBean中。
BeanListHandler 将结果集中每一条记录封装到指定的javaBean中,将这些javaBean在封装到List集合中
ColumnListHandler 将结果集中指定的列的字段值,封装到一个List集合中
ScalarHandler 它是用于单数据。例如select count(*) from 表操作。
MapHandler 将结果集第一行封装到Map集合中,Key 列名, Value 该列数据
MapListHandler 将结果集第一行封装到Map集合中,Key 列名, Value 该列数据,Map集合存储到List集合

实现代码

package cn.hiluna.demo2;
/*
 * QueryRunner数据查询操作:
 * 调用QueryRunner类的方法:query(Connection con,Stirng sql,ResultSetHandler r,Object...params)
 * ResultSetHandler 表示结果集的处理方式,传递ResultSetHandler接口实现类
 * Object...params sql语句中的?占位符
 * 
 * 注意:query方法返回值,返回的是T 泛型,具体的返回值类型,跟随结果集处理方式变化。
 */


import java.sql.Connection;
import java.sql.SQLException;
import java.util.List;
import java.util.Map;

import org.apache.commons.dbutils.QueryRunner;
import org.apache.commons.dbutils.handlers.ArrayHandler;
import org.apache.commons.dbutils.handlers.ArrayListHandler;
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 cn.hiluna.domain.Sort;
import cn.hiluna.jdbcutil.JDBCUtilsConfig;

public class QueryRunnerDemo1 {
    private static Connection connection = JDBCUtilsConfig.getConnection();
    private static final String sql = "SELECT * FROM sort ";
    public static void main(String[] args) throws Exception{
        //arrayHandler();
        //arrayListHandler();
        //beanHandler();
        //beanListHander();
        //columnListHander();
        //scalarHandler();
        //mapHandler();
        mapListHander();
    }
    /*
     * 结果集第八种处理方法,MapListHandler
     * 将结果集每一行存储到Map集合,键:列名 值:数据
     * Map集合过多,存储到List集合
     */
    public static void mapListHander() throws SQLException{
        QueryRunner qr = new QueryRunner();
        //调用方法query,传递结果集处理的实现类MapListHandler
        //返回值List集合,存储的是Map集合
        List<Map<String, Object>> list = qr.query(connection, sql, new MapListHandler());
        for(Map<String, Object> map : list) {
            for(String key : map.keySet()) {
                System.out.print(key+".."+map.get(key));
            }
            System.out.println();
        }
    }
    /*
     * 结果集第七种处理方法,MapHandler
     * 将结果集第一行数据,封装到Map集合中
     * Map<键,值>键:列名 值:这列的数据
     */
    public static void mapHandler() throws SQLException{
        QueryRunner qr = new QueryRunner();
        //调用方法query,传递结果集实现类MapHander
        //返回值:Map集合,Map接口实现类,泛型
        Map<String, Object> map = qr.query(connection, sql, new MapHandler());
        //遍历Map集合
        for(String key : map.keySet()) {
            System.out.println(key+".."+map.get(key));
        }
    }
    /*
     * 结果集第六种处理方法,ScalarHandler
     * 对于查询后,只有一个结果
     * 
     */
    public static void scalarHandler() throws SQLException{
        QueryRunner qr = new QueryRunner();
        String sqls = "SELECT count(*) FROM sort ";
        //调用方法query,传递结果集实现类ScalarHandler
        Object object = qr.query(connection, sqls, new ScalarHandler<Object>());
        System.out.println(object);
    }
    /*
     * 第五个结果集处理方法,ColumnListHander
     * 结果集,指定列的数据,存储到List集合
     * List<Object>每个列数据类型不同
     */
    public static void columnListHander() throws SQLException{
        QueryRunner qr = new QueryRunner();

        //调用方法query,传递结果集实现类ColumnListHander
        //实现类构造方法中,使用字符串的列名
        List<Object> list = qr.query(connection, sql,new ColumnListHandler<>("sname"));
        for(Object object: list ) {
            System.out.println(object);
        }
    }
    /*
     * 结果集第四种处理方式,BeanListHandler
     * 将数据结果集的每一行数据,封装成JavaBean对象
     * 多个JavaBean对象封装到List集合中
     */
    public static void beanListHander() throws SQLException{
        QueryRunner qr = new QueryRunner();

        //调用方法传递方法的结果集的实现类BeanListHnadler
        List<Sort> list = qr.query(connection, sql, new BeanListHandler<Sort>(Sort.class));
        for(Sort sort : list) {
            System.out.println(sort);
        }
    }
    /*
     * 结果集的第三种处理方法,BeanHandler
     * 将结果集的第一行数据,封装成JavaBean对象
     * 注意:被封装成数据到JavaBean对象,Sort必须有空参数构造方法
     */
    public static void beanHandler()throws SQLException{
        QueryRunner qr = new QueryRunner();

        //调用方法,传递结果集实现类BeanHandler
        //BeanHandler(Class<T> type) 
        Sort s = qr.query(connection, sql, new BeanHandler<Sort>(Sort.class));
        System.out.println(s);
    }
    /*
     * 结果集的第二种处理方法,ArrayListHandler
     * 将结果集的每一行,封装到对象数组中,出现很多对象数组
     * 对象数组存储到List集合
     */
    public static void arrayListHandler() throws SQLException{
        QueryRunner queryRunner = new QueryRunner();

        //调用query方法,结果集处理的参数上,传递实现类ArrayListHandler
        //方法返回值 每行是一个对象数组,存储到List
        List<Object[]> result = queryRunner.query(connection, sql, new ArrayListHandler());
        //集合的遍历
        for(Object[] objects : result) {
            //遍历对象数组
            for(Object object :objects) {
                System.out.print(object+"   ");
            }
            System.out.println();
        }
    }
    /*
     * 结果集第一种处理方法,ArrayHander
     * 将结果集的第一行存储到对象数组中 Object[]
     */
    public static void arrayHandler() throws SQLException{
        QueryRunner queryRunner = new QueryRunner();

        //调用query执行查询,传递连接对象,sql语句,结果集处理方式的实现类
        //返回一个对象数组
        Object[] result = queryRunner.query(connection, sql, new ArrayHandler());
        for(Object object : result) {
            System.out.print(object+"t");
        }
    }
}

JavaBean对象

package cn.hiluna.domain;

public class Sort {
    private int sid;
    private String sname;
    private double sprice;
    private String sdesc;
    public Sort(int sid, String sname, double sprice, String sdesc) {
        this.sid = sid;
        this.sname = sname;
        this.sprice = sprice;
        this.sdesc = sdesc;
    }
    public Sort(){}
    @Override
    public String toString() {
        return "Sort [sid=" + sid + ", sname=" + sname + ", sprice=" + sprice + ", sdesc=" + sdesc + "]";
    }
    public int getSid() {
        return sid;
    }
    public void setSid(int sid) {
        this.sid = sid;
    }
    public String getSname() {
        return sname;
    }
    public void setSname(String sname) {
        this.sname = sname;
    }
    public double getSprice() {
        return sprice;
    }
    public void setSprice(double sprice) {
        this.sprice = sprice;
    }
    public String getSdesc() {
        return sdesc;
    }
    public void setSdesc(String sdesc) {
        this.sdesc = sdesc;
    }
}

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇