Apache-JDBCUtils

    // 插入数据
    @Test
    public void testInset() throws Exception {
        Connection conn = null;
        try {

            // 1. 实例化 QueryRunner 对象
            QueryRunner queryRunner = new QueryRunner();

            // 2. 自己获取连接
            conn = JDBCUtils.getConnectionByDruid();

            // 3. 提供 SQL 语句
            String sql = "insert into stu(id, name, age)values(?, ?, ?)";

            // 4. 返回影响了多少行
            int i = queryRunner.update(conn, sql, 2, "Jack", "25");
            System.out.println("添加了" + i + "条数据");

        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            JDBCUtils.closeResource(conn, null, null);
        }
    }


    // 查询一条数据[BeanHandler] --- 以对象形式封装
    @Test
    public void testQuery_1() {
        Connection conn = null;
        try {

            // 1. 实例化 QueryRunner 对象
            QueryRunner runner = new QueryRunner();

            // 2. 自己获取连接
            conn = JDBCUtils.getConnectionByDruid();

            // 3. 提供 SQL 语句
            String sql = "select id, name, age from stu where id = ?";
            /**
                rsh:是结果集的处理器,是为了 应对不同的查询情况而产生的
                    表示查询的结果是哪个
                    如:BeanHandler表示返回一个对象
                BeanHandler是ResultSetHandler接口的一个实现类,用于封装表中的一条记录
             */

            // 4. 获取 BeanHandler 对象
            BeanHandler<Stu> handler = new BeanHandler<>(Stu.class);

            // 5. 查询结果
            Stu stu = runner.query(conn, sql, handler, 1);
            System.out.println(stu);

        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            JDBCUtils.closeResource(conn, null, null);
        }
    }


    // 查询多条数据[BeanListHandler] --- 以对象集合形式封装
    @Test
    public void testQuery_2() {
        Connection conn = null;
        try {

            // 1. 实例化 QueryRunner 对象
            QueryRunner runner = new QueryRunner();

            // 2. 连接
            conn = JDBCUtils.getConnectionByDruid();

            // 3. SQL
            String sql = "select id, name, age from stu";

            // 4. 获取 BeanListHandler 对象
            BeanListHandler<Stu> handler = new BeanListHandler<>(Stu.class);

            // 5. 打印结果
            List<Stu> list = runner.query(conn, sql, handler);
            list.forEach(System.out::println);

        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            JDBCUtils.closeResource(conn, null, null);
        }
    }


    // 查询一条数据[MapHandler] --- 以map封装
    @Test
    public void testQuery_3() {
        Connection conn = null;
        try {
            // 1. 实例化 QueryRunner 对象
            QueryRunner runner = new QueryRunner();

            // 2. 连接
            conn = JDBCUtils.getConnectionByDruid();

            // 3. SQL
            String sql = "select id, name, age from stu where id = ?";

            // 4. 获取 MapHandler 对象
            MapHandler handler = new MapHandler();

            // 5. 打印结果
            Map<String, Object> map = runner.query(conn, sql, handler, 1);
            System.out.println(map);

        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            JDBCUtils.closeResource(conn, null, null);
        }
    }


    // 查询多条数据[MapHandler] --- 以map集合形式封装
    @Test
    public void testQuery_4() {
        Connection conn = null;
        try {
            // 1. 实例化 QueryRunner 对象
            QueryRunner runner = new QueryRunner();

            // 2. 连接
            conn = JDBCUtils.getConnectionByDruid();

            // 3. SQL
            String sql = "select id, name, age from stu";

            // 4. MapListHandler
            MapListHandler handler = new MapListHandler();

            // 5. 结果
            List<Map<String, Object>> list = runner.query(conn, sql, handler);
            list.forEach(System.out::println);

        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            JDBCUtils.closeResource(conn, null, null);
        }
    }

    // 查询特殊值 --- 查询有多少条数据
    @Test
    public void testQuery_5() {
        Connection conn = null;
        try {
            QueryRunner runner = new QueryRunner();
            conn = JDBCUtils.getConnectionByDruid();
            String sql = "select count(*) from customers";

            ScalarHandler handler = new ScalarHandler();

            Long cnt = (Long) runner.query(conn, sql, handler);
            System.out.println(cnt);

        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            JDBCUtils.closeResource(conn, null, null);
        }
    }

    // 查询特殊值 --- 查询最大生日是什么
    @Test
    public void testQuery_6() {
        Connection conn = null;
        try {
            QueryRunner runner = new QueryRunner();
            conn = JDBCUtils.getConnectionByDruid();
            String sql = "select max(age) from customers";

            ScalarHandler handler = new ScalarHandler();

            int age = (int) runner.query(conn, sql, handler);
            System.out.println(age);

        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            JDBCUtils.closeResource(conn, null, null);
        }
    }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值