P53 QueryRunner的使用

QueryRunner实现添加数据的操作

@Test
public void testInsert()  {
    Connection conn = null;
    try {
        QueryRunner runner = new QueryRunner();
        conn = JDBCUtils1.getConnection2();
        String sql="insert into customers(name,email,birth)values(?,?,?) ";
        int insertCount=runner.update(conn,sql, "蔡徐坤","cxk@qq.com","1990-01-02");
        System.out.println("添加了"+insertCount+"条记录");
    } catch (Exception e) {
        e.printStackTrace();
    } finally {
        JDBCUtil.closeResource(conn, null);
    }
}

QueryRunner查询表中一条或多条记录

//测试查询
//BeanHandler:是ResultSetHandler接口的实现类,用于封装表中的一条记录
@Test
public void testQuery1()  {
    Connection conn = null;
    try {
        QueryRunner runner = new QueryRunner();
        conn = JDBCUtils1.getConnection2();
        String sql="select id,name,email,birth from customers where id=?";
        BeanHandler<Customer> handler=new BeanHandler<>(Customer.class);
        Customer cust = runner.query(conn, sql, 23, handler);
        System.out.println(cust);
    } catch (Exception e) {
        e.printStackTrace();
    } finally {
        JDBCUtil.closeResource(conn, null);
    }

}
//返回多条记录,要用BeanListHandler
@Test
public void testQuery2()  {
    Connection conn = null;
    try {
        QueryRunner runner = new QueryRunner();
        conn = JDBCUtils1.getConnection2();
        String sql="select id,name,email,birth from customers where id<?";

        BeanListHandler<Customer> handler = new BeanListHandler<>(Customer.class);

        List<Customer> cust = runner.query(conn, sql, 23, handler);
        cust.forEach(System.out::println);
    } catch (Exception e) {
        e.printStackTrace();
    } finally {
        JDBCUtil.closeResource(conn, null);
    }
}
//3.MapHandeler:是ResultSetHandler接口的实现类,用于封装表中的一条记录
//将字段及相应字段的值作为map中的key和value
@Test
public void testQuery3()  {
    Connection conn = null;
    try {
        QueryRunner runner = new QueryRunner();
        conn = JDBCUtils1.getConnection2();
        String sql="select id,name,email,birth from customers where id=?";
        MapHandler mapHandler = new MapHandler();
        Map<String, Object> map = runner.query(conn, sql, 23, mapHandler);
        System.out.println(map);
    } catch (Exception e) {
        e.printStackTrace();
    } finally {
        JDBCUtil.closeResource(conn, null);
    }
}

//4.MapListHandeler:是ResultSetHandler接口的实现类,对应表中的多条记录
//将字段及相应字段的值作为map中的key和value,将这些map添加到list中
@Test
public void testQuery4()  {
    Connection conn = null;
    try {
        QueryRunner runner = new QueryRunner();
        conn = JDBCUtils1.getConnection2();
        String sql="select id,name,email,birth from customers where id<?";
        MapListHandler mapListHandler = new MapListHandler();
        List<Map<String, Object>> list = runner.query(conn, sql, 23, mapListHandler);
        list.forEach(System.out::println);
    } catch (Exception e) {
        e.printStackTrace();
    } finally {
        JDBCUtil.closeResource(conn, null);
    }
}

QueryRunner查询表中特殊值

//5.ScalarHandler:用于查询特殊值
@Test
public void testQuery5()  {
    Connection conn = null;
    try {
        QueryRunner runner = new QueryRunner();
        conn = JDBCUtils1.getConnection2();
        String sql="select count(*) from customers";

        ScalarHandler scalarHandler = new ScalarHandler();

        Long count = (Long) runner.query(conn, sql, scalarHandler);
        System.out.println(count);
    } catch (Exception e) {
        e.printStackTrace();
    } finally {
        JDBCUtil.closeResource(conn, null);
    }
}
//5.ScalarHandler:用于查询特殊值
@Test
public void testQuery6()  {
    Connection conn = null;
    try {
        QueryRunner runner = new QueryRunner();
        conn = JDBCUtils1.getConnection2();
        String sql="select max(birth) from customers";

        ScalarHandler scalarHandler = new ScalarHandler();

        Date date = (Date) runner.query(conn, sql, scalarHandler);
        System.out.println(date);
    } catch (Exception e) {
        e.printStackTrace();
    } finally {
        JDBCUtil.closeResource(conn, null);
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值