JDBC八种结果集处理

package cn.QueryRunnerDemo1;

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

import org.apache.commons.dbutils.DbUtils;
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.liju.jdbcutils.JDBCUtilsConfig;

//这里是我写的一个连接在上一篇
import cn.lijun.domain.Sort;

public class QueryRunnerdemo {
    private static Connection con = JDBCUtilsConfig.getConection();
    public static void main(String[] args) throws SQLException {
        //1结果集处理ArrayHandler
        //arrayHandler();
        //arrayListHandler();
         //beanHandler();
         //beanListHandler();
        //columnListHandler();
       // scalarHandle();    
        //mapHandler();
        mapListHandler();
    }
    //11.8结果集处理MapListHandler    将结果集第一行封装到Map集合中,Key 列名, Value 该列数据,Map集合存储到List集合
    public static void mapListHandler() throws SQLException{
        QueryRunner qr = new QueryRunner();
        String sql="SELECT * FROM sort";
        //调用QueryRunner方法   执行查询   返回列名的集合
        List<Map<String,Object>> list= qr.query(con, sql, new MapListHandler());
        DbUtils.close(con);
        //遍历集合
        for(Map<String,Object> map:list){
            for(String key:map.keySet()){
                System.out.print(key+":"+map.get(key)+"   ");
            }
            System.out.println();
        }
        
    }
            
    //11.7结果集处理MapHandler    将结果集第一行封装到Map集合中,Key 列名, Value 该列数据
    public static void mapHandler() throws SQLException{
        QueryRunner qr = new QueryRunner();
        String sql="SELECT * FROM sort";
        //调用QueryRunner方法   执行查询   返回列名的集合
        Map<String,Object> map= qr.query(con, sql, new MapHandler());
        DbUtils.close(con);
        
        for(String key:map.keySet()){
            System.out.println(key+"   "+map.get(key));
        }
        
    }

    //11.6结果集处理ScalarHandler     查询后只有一个结果    它是用于单数据。例如select count(*) from 表操作。 
    public static void scalarHandle() throws SQLException{
        QueryRunner qr = new QueryRunner();
        String sql="SELECT COUNT(*) FROM sort";
        //调用QueryRunner方法   执行查询   返回列名的集合
         Long ls = qr.query(con, sql, new ScalarHandler<Long>());
        DbUtils.close(con);
        
        System.out.println(ls);
        
    }
        
    
    //11.5结果集处理ColumnListHandler          将结果集中指定的列的字段值,封装到一个List集合中
    public static void columnListHandler() throws SQLException{
        QueryRunner qr = new QueryRunner();
        String sql="SELECT * FROM sort";
        //调用QueryRunner方法   执行查询   返回列名的集合
         List<Object> ls = qr.query(con, sql, new ColumnListHandler<Object>("sname"));
        DbUtils.close(con);
        
        for(Object l:ls){
            System.out.println(l);
        }
        
    }
        
            
    //11.4结果集处理BeanListHandler            将结果集中每一条记录封装到指定的javaBean中,将这些javaBean在封装到List集合中
    public static void beanListHandler() throws SQLException{
        QueryRunner qr = new QueryRunner();
        String sql="SELECT * FROM sort";
        //调用QueryRunner方法   执行查询   返回BeanListHandler
         List<Sort> ls = qr.query(con, sql, new BeanListHandler<Sort>(Sort.class));
        DbUtils.close(con);
        
        for(Sort l:ls){
            System.out.println(l);
        }
        
    }
        
    //11.3结果集处理BeanHandler        将结果集中第一条记录封装到一个指定的javaBean中。
    public static void beanHandler() throws SQLException{
        QueryRunner qr = new QueryRunner();
        String sql="SELECT * FROM sort";
        //调用QueryRunner方法   执行查询   返回BeanHandler
         Sort s = qr.query(con, sql, new BeanHandler<>(Sort.class));
        DbUtils.close(con);
        
        
        System.out.println(s);
    }
    
    //11.2结果集处理ArrayListHandler           将结果集中的每一条记录都封装到一个Object[]数组中,将这些数组在封装到List集合中。
    public static void arrayListHandler() throws SQLException{
        QueryRunner qr = new QueryRunner();
        String sql="SELECT * FROM sort";
        //调用QueryRunner方法   执行查询   返回的是集合
         List<Object[]> query = qr.query(con, sql, new ArrayListHandler());
        DbUtils.close(con);
        
        
        for(Object[] qiang:query){
            for(Object obj:qiang){
                System.out.print(obj+"    ");
            }
            System.out.println();
        }
    }
    
    //1结果集处理ArrayHandler     将结果集中的第一条记录封装到一个Object[]数组中,数组中的每一个元素就是这条记录中的每一个字段的值
    public static void arrayHandler() throws SQLException{
        QueryRunner qr = new QueryRunner();
        String sql="SELECT * FROM sort";
        //调用QueryRunner方法   执行查询
        Object[] query = qr.query(con, sql, new ArrayHandler());
        DbUtils.close(con);
        
        
        for(Object qiang:query){
            System.out.println(qiang);
        }
    }
}

原文地址:https://www.cnblogs.com/guanxin180609/p/10441951.html