• Apache-DBUtils的查询和DML


    Apache-Utils

    基本介绍:

    1.commons-dbutils是Apache组织提供的一个开源JDBC工具类库,它是对JDBC的封装,使用dbutils能极大简化JDBC编码的工作量

    2.DbUtils类

    3.QueryRunner类:该类封装了SQL的执行,是线程安全的。可以实现增、删、改、查、批处理

    4.使用QueryRunner类实现了查询

    5.ResultSetHandler接口:该接口用于处理java.sql.ResultSet,将数据按要求转换为另一种形式

     Apache-DBUtils的查询

    使用DBUtils和数据库连接池(德鲁伊)方式,完成对表admin02的查询操作 :       

    package com.jh.datasource;
    
    //使用apache-DBUtils工具类和druid完成对表的crud操作
    
    import org.apache.commons.dbutils.QueryRunner;
    import org.apache.commons.dbutils.handlers.BeanListHandler;
    import org.junit.jupiter.api.Test;
    
    import java.sql.Connection;
    import java.sql.SQLException;
    import java.util.List;
    
    
    public class DBUtils_USE {
    
        //查询返回结果是对行的情况
        @Test
        public void testQueryMany() throws SQLException {
            //1.得到连接(druid)
            Connection connection = JDBCUtilsDruid.getConnection();
            //2.使用DBUtils类和接口,先引入DBUtils相关的jar,在加入Project
            //3.创建QueryRunner
            QueryRunner queryRunner = new QueryRunner();
            //4.组织SQL语句
            String sql = "select * from admin02 where id >= ?";
            //5.queryRunner可以执行相关的方法,返回ArrayList结果集
            /**
             * 1.query方法就是执行sql语句,得到resultset 并封装到 ArrayList集合中
             * 2.返回集合
             * 3.connection:连接
             * 4.sql:执行的sql语句
             * 5.new BeanListHandler<>(Admin02.class):
             *                      在resultset结果集中的Admin02类的对象封装到ArrayList中
             * 6.1:是给sql语句中的?赋值的,可以有多个值,因为是可变参数
             * 7.底层得到的resultset,会在query中关闭,关闭PreparedStatement,
             */
            List query = queryRunner.query(
                    connection, sql, new BeanListHandler<>(Admin02.class), 100);
    
            //6.打印出信息
            System.out.println("打印出结果集中的信息...");
            for (Admin02 admin02 : query){
                System.out.println(admin02);
            }
    
            //7.释放资源
            JDBCUtilsDruid.close(null,null,connection);
            
        }
        
    }
    

     使用DBUtils和数据库连接池(德鲁伊)方式,完成对表admin02的查询(单行、单行单列)操作 :       

    package com.jh.datasource;
    
    //演示apache-dbutils和druid完成 返回的结果是单行记录(单个对象)
    // 返回结果是单行单列的记录
    //
    
    import org.apache.commons.dbutils.QueryRunner;
    import org.apache.commons.dbutils.handlers.BeanHandler;
    import org.apache.commons.dbutils.handlers.ScalarHandler;
    import org.junit.jupiter.api.Test;
    
    import java.sql.Connection;
    import java.sql.SQLException;
    
    public class TestQuerySingle {
        @Test
        //apache-dbutils和druid完成 返回的结果是单行记录(单个对象)
        public void testQuerySingle() throws SQLException {
    
            //1.得到连接(druid)
            Connection connection = JDBCUtilsDruid.getConnection();
            //2.使用DBUtils类和接口,先引入DBUtils相关的jar,在加入Project
            //3.创建QueryRunner
            QueryRunner queryRunner = new QueryRunner();
            //4.组织SQL语句,返回单个对象
            String sql = "select * from admin02 where id = ?";
    
            //5.BeanHandler:返回单个对象
            Admin02 query = queryRunner.query(
                    connection, sql, new BeanHandler<>(Admin02.class), 10);
    
            //6.输出信息
            System.out.println(query);
            //7.释放资源
            JDBCUtilsDruid.close(null,null,connection);
    
        }
    
        //apache-dbutils和druid完成 查询结果是单行单列的记录,返回的是object
        @Test
        public void testScalar() throws SQLException {
            //1.得到连接(druid)
            Connection connection = JDBCUtilsDruid.getConnection();
            //2.使用DBUtils类和接口,先引入DBUtils相关的jar,在加入Project
            //3.创建QueryRunner
            QueryRunner queryRunner = new QueryRunner();
            //4.组织SQL语句,返回单个对象
            String sql = "select username from admin02 where id = ?";
    
            //5.ScalarHandler:返回结果是单行单列的记录
            Object query = queryRunner.query(connection, sql, new ScalarHandler(), 10);
        
            //6.输出信息
            System.out.println(query);
            //7.释放资源
            JDBCUtilsDruid.close(null,null,connection);
    
        }
    }
    

    单行:

     单行单列:

     使用DBUtils和数据库连接池(德鲁伊)方式,完成对表admin02的DML操作 : 

    package com.jh.datasource;
    
    //演示apache-dbutils和druid完成 DML
    
    import org.apache.commons.dbutils.QueryRunner;
    import org.apache.commons.dbutils.handlers.BeanHandler;
    import org.junit.jupiter.api.Test;
    
    import java.sql.Connection;
    import java.sql.SQLException;
    
    public class TestDML {
        @Test
        public void testDML() throws SQLException {
            //1.得到连接(druid)
            Connection connection = JDBCUtilsDruid.getConnection();
            //2.使用DBUtils类和接口,先引入DBUtils相关的jar,在加入Project
            //3.创建QueryRunner
            QueryRunner queryRunner = new QueryRunner();
            //4.组织SQL语句,完成DML(insert、delete、update)
            String sql = "update Admin02 set username = ? where id = ?";
            //5.返回的值是受影响的行数(affected受影响)
            int affectedRow = queryRunner.update(connection, sql, "jason", 2);
    
            //6.输出信息
            System.out.println(affectedRow > 0 ? "执行成功" : "执行未影响表");
            //7.释放资源
            JDBCUtilsDruid.close(null,null,connection);
    
        }
    }
    

     

  • 相关阅读:
    chatGLM-Windows环境安装
    数据可视化-直方图
    [英雄星球六月集训LeetCode解题日报] 第28日 动态规划
    北邮22级信通院数电:Verilog-FPGA(6)第六周实验:全加器(关注我的uu们加群咯~)
    streamlit执行报错WARNING,重新安装碰到问题如何解决
    云原生背景下如何配置 JVM 内存
    Spring之aop
    Unity实战之一个脚本实现雷达图
    Linux shell终端打开方式
    【白话科普】从“熊猫烧香”聊聊计算机病毒
  • 原文地址:https://blog.csdn.net/weixin_46065214/article/details/126328716