• JDBCUtils



    使用properties配置文件
     位置:任意,src最佳
     名称:.properties结尾
     内容:key=value格式,value不支持中文,可用Unicode转换
     注释:#
    创建配置文件:创建properties文件,写入键值对
    加载配置文件:load()方法加载流->getProperty(key)获得值
    读取配置文件:获取连接【执行一次,静态代码块】

    JDBCUtils类(导包)
       定义:是java编程中的数据库操作实用工具,小巧简单实用
      
     事务:将多条sql语句包装成一个事务。
        执行成功,提交事务:commit(所有语句均成功 )
        执行失败,回滚事务:rollback(但凡一条语句不成功)
      
     三个核心功能介绍:
        QueryRunner:中提供对sql语句操作的API.
        ResultSetHandler接口:用于定义select操作后,怎样封装结果集.
        DbUtils类:工具类,定义了关闭资源与事务处理的方法
      
     QueryRunner的Update 实现添加、更新、删除操作
        Insert/delete/update
        【Update(Connection con,String sql,Object…param)】 
      步骤:
         连接数据库->创建QueryRunner对象->编写sql->调update()->处理结果集->释放资源
        调用QueryRunner()方法->ResultSetHandler r 结果集处理
      
        QueryRunner的Query 查询操作

      处理结果集8大方法
        ResultSetHandler结果集处理
           ArrayHandler:将结果集中的第一条记录封装到一个Object[]数组中
             【Object[] result = qr.query(con, sql, new ArrayHandler());】
           ArrayListHandler:每条记录都封装到一个Object[]数组中,将这些数组在封装到List集合中。
             【List<Object[]> result = qr.query(con, sql, new ArrayListHandler());】
       
         BeanHandler:将结果集中第一条记录封装成javaBean对象。
           【Sort s = qr.query(con, sql, new BeanHandler<Sort>(Sort.class));】
         BeanListHandler:将结果集中每一条记录封装到javaBean中,将这些javaBean在封装到List集合中
           【List<Sort> s = qr.query(con, sql, new BeanListHandler<Sort>(Sort.class));】(sort是一个根据数据库建的一个类)
       
         ColumnListHandler:将结果集中指定的列的字段值,封装到一个List<Object o>集合中
           【List<Object>list = qr.query(con, sql, new ColumnListHandler<Object>("列名"));】
        
         ScalarHandler:它是用于单数据。查询后只有一个结果集(一行一列)时使用
           【Object count = qr.query(con, sql, new ScalarHandler<Object>());】
       
         MapHandler:将结果集第一行封装到Map集合中,Key 列名, Value 该列数据
           【Map<String,Object> map = qr.query(con,sql,new MapHandler());】
         MapListHandler:将结果集第一行封装到Map集合中,Key 列名, Value 该列数据,Map集合存储到List集合
           【List<Map<String,Object>> list = qr.query(con,sql,new MapListHandler());】
       
       

    //ArrayHandler处理集
        private static void arrayHandlerM() throws SQLException {
            Connection con = JDBCUtilsss.getConnection();
            //获取QueryRunner对象
            QueryRunner qr = new QueryRunner();
            //执行SQL语句
            String sql = "select * from sort";
            //调用query执行查询,传递连接对象,sql语句,结果集处理方式,返回一个对象数组
            Object[] result = qr.query(con, sql, new ArrayHandler());
            for (Object oo : result) {
                System.out.print(oo+"	");
            }
        }
    /ArrayListHandler处理结果集
        private static void arrayListHandlerM() throws SQLException {
            Connection con = JDBCUtilsss.getConnection();
            //获取QueryRunner对象
            QueryRunner qr = new QueryRunner();
            
            String sql = "select * from sort";
            //将获取的结果集存入集合,集合中存入每条语句构成的数组
            List<Object[]> result = qr.query(con, sql, new ArrayListHandler());
            
            for (Object[] objs : result) {
                for (Object obj : objs) {
                    System.out.print(obj+"	");
                }
                System.out.println();
            }
        }
    //BeanListHandler
        private static void beanListHandlerM() throws SQLException {
            Connection con = JDBCUtilsss.getConnection();
            //获取QueryRunner对象
            QueryRunner qr = new QueryRunner();
    
            String sql = "select * from sort";
            List<Sort> s = qr.query(con, sql, new BeanListHandler<Sort>(Sort.class));
            for (Sort ss : s) {
                System.out.println(ss);
            }
        }
    //ColumnListHandler
        private static void columnListHandlerM() throws SQLException {
            Connection con = JDBCUtilsss.getConnection();
            //获取QueryRunner对象
            QueryRunner qr = new QueryRunner();
    
            String sql = "select * from sort";
            List<Object>list = qr.query(con, sql, new ColumnListHandler<Object>("sname"));
            for (Object s : list) {
                System.out.println(s);
            }
        }
    //ScalarHandler
        private static void scalarHandlerM() throws SQLException {
            Connection con = JDBCUtilsss.getConnection();
            //获取QueryRunner对象
            QueryRunner qr = new QueryRunner();
    
            String sql = "select count(*) from sort";
            Object count = qr.query(con, sql, new ScalarHandler<Object>());
            System.out.println(count);
        }
    //MapListHandler
        private static void mapListHandlerM() throws SQLException {
            Connection con = JDBCUtilsss.getConnection();
            //获取QueryRunner对象
            QueryRunner qr = new QueryRunner();
    
            String sql ="select * from sort";
            List<Map<String,Object>> list = qr.query(con, sql, new MapListHandler());
            //获取到每个Map,遍历得到信息
            for (Map<String, Object> map : list) {
                for (Object keys : map.keySet()) {
                    System.out.print(keys+".."+map.get(keys));
                }
                System.out.println();
            }
        }


       

    smile
  • 相关阅读:
    Powered by .NET Core 进展0815:第5次发布尝试(Windows部署)团队
    峰回路转:去掉 DbContextPool 后 Windows 上的 .NET Core 版博客表现出色团队
    做梦也没有想到:Windows 上的 .NET Core 版博客系统表现更糟糕团队
    全网最详细的zkfc启动以后,几秒钟以后自动关闭问题的解决办法(图文详解)
    全网最详细的HBase启动以后,HMaster进程启动了,几秒钟以后自动关闭问题的解决办法(图文详解)
    全网最详细的启动或格式化zkfc时出现java.net.NoRouteToHostException: No route to host ... Will not attempt to authenticate using SASL (unknown error)错误的解决办法(图文详解)
    全网最详细的HA集群的主节点之间的双active,双standby,active和standby之间切换的解决办法(图文详解)
    全网最详细的启动zkfc进程时,出现INFO zookeeper.ClientCnxn: Opening socket connection to server***/192.168.80.151:2181. Will not attempt to authenticate using SASL (unknown error)解决办法(图文详解)
    全网最详细的再次或多次格式化导致namenode的ClusterID和datanode的ClusterID之间不一致的问题解决办法(图文详解)
    执行bin/hdfs haadmin -transitionToActive nn1时出现,Automatic failover is enabled for NameNode at bigdata-pro02.kfk.com/192.168.80.152:8020 Refusing to manually manage HA state的解决办法(图文详解)
  • 原文地址:https://www.cnblogs.com/qiuqiu001/p/7956337.html
Copyright © 2020-2023  润新知