博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
DBUtils之查询(一)
阅读量:6695 次
发布时间:2019-06-25

本文共 3790 字,大约阅读时间需要 12 分钟。

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集合

  • ArrayHandler:
public static void myArrayHandler() throws SQLException {        Connection con = MyJDBCUtiles.getConnection();        String sql = "select * from userinfo where age = ?";        Object [] param = {21};        QueryRunner qr = new QueryRunner();        Object [] result = qr.query(con,sql,new ArrayHandler(),param);        for(Object res : result){            System.out.print(res+"\t");        }        DbUtils.closeQuietly(con);    }
  • 打印结果:

  • ArrayListHandler(注意接收结果集的数据类型)
public static void myArrayListHandler() throws SQLException {        Connection con = MyJDBCUtiles.getConnection();        String sql = "select * from userinfo where age = ?";        Object [] param = {21};        QueryRunner qr = new QueryRunner();        List
list = qr.query(con,sql,new ArrayListHandler(),param); for(Object[] obj : list){ for (int i = 0; i < obj.length; i++) { System.out.print(obj[i]+"\t"); } System.out.println(); } DbUtils.closeQuietly(con); }
  • 打印结果:

  •  BeanHandler:
  • 存储信息的类需要满足以下条件
  1. 需要实现接口:java.io.Serializable ,通常实现接口这步骤省略了,不会影响程序;
  2. 提供私有字段:private 类型 字段名;

  3. 提供getter/setter方法;
  4. 提供无参构造。

存储信息的类(Userinfo.java):

package com.kong.domain;public class Userinfo {    private int id;    private String username;    private String password;    private int age;    public Userinfo(int id, String username, String password, int age) {        this.id = id;        this.username = username;        this.password = password;        this.age = age;    }    public Userinfo(){}    public int getId() {        return id;    }    public void setId(int id) {        this.id = id;    }    public String getUsername() {        return username;    }    public void setUsername(String username) {        this.username = username;    }    public String getPassword() {        return password;    }    public void setPassword(String password) {        this.password = password;    }    public int getAge() {        return age;    }    public void setAge(int age) {        this.age = age;    }}
  •   实现代码:
 //使用beanHandler    public static void beanHandler() throws SQLException {        Connection con = MyJDBCUtiles.getConnection();        QueryRunner qr = new QueryRunner();        String sql = "select * from userinfo where age = ?";        Object [] param = {21};        Userinfo userinfo = qr.query(con,sql,new BeanHandler
(Userinfo.class),param); //若没有查询到则会报空指针异常 System.out.println(userinfo.getId()+"\t"+userinfo.getUsername()+"\t"+ userinfo.getPassword()+"\t"+userinfo.getAge()); DbUtils.closeQuietly(con); }
  •   结果

 

  •        使用BeanListArray
public static void beanListHandler() throws SQLException {        Connection con = MyJDBCUtiles.getConnection();        QueryRunner qr = new QueryRunner();        String sql = "select * from userinfo where age = ?";        Object [] param = {21};        List
list = qr.query(con,sql,new BeanListHandler
(Userinfo.class),param); //若没有查询到则list.size()=0 for(Userinfo userinfo : list){ System.out.println(userinfo.getId()+"\t"+userinfo.getUsername()+"\t"+ userinfo.getPassword()+"\t"+userinfo.getAge()); } DbUtils.closeQuietly(con); }
  •   结果

 ^_^

转载于:https://www.cnblogs.com/kongieg/p/10065955.html

你可能感兴趣的文章
我发现
查看>>
以太网ip,tcp,udp数据包分析
查看>>
frame和iframe区别
查看>>
border ,background-attachment
查看>>
Algs4-1.5-quick-union
查看>>
noip2010普及组 接水问题分析
查看>>
流程控制
查看>>
PHP验证码无法显示
查看>>
k8s/02中文文档学习笔记
查看>>
网站平台架构演变史(三) - 数据库表的查询优化
查看>>
fastdfs 图片服务器 使用java端作为客户端上传图片
查看>>
步步为营 .NET 代码重构学习笔记 三、内联方法(Inline Method)
查看>>
前端地址大全
查看>>
DAY19-Django之model进阶
查看>>
从0移植uboot(六) _实现网络功能
查看>>
Linux命令——du
查看>>
Cube Stacking
查看>>
WPF中DataGrid的ComboBox的简单绑定方式(绝对简单)
查看>>
UIViewContentMode各类型效果
查看>>
转:开启nginx的gzip压缩的相关参数设置
查看>>