• 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);
            }
        }
    }

  • 相关阅读:
    appscan的初步使用
    解决selenium自动化上传图片或文件出现windows窗口问题
    写入excel数据报错:ValueError: Cannot convert {'code': 0, 'msg': 'login success!', 'username': 'test',} to Excel
    接口自动化使用session会话解决数据依赖问题
    使用django开发一个简单的post接口
    windows10,解决jmeter5.2.1版本界面字体过小问题
    django配置使用mysql数据库运行报错:django.core.exceptions.ImproperlyConfigured: Error loading MySQLdb module: No module named 'MySQLdb'
    python装饰器
    python闭包
    工作总结
  • 原文地址:https://www.cnblogs.com/guanxin180609/p/10441951.html
Copyright © 2020-2023  润新知