Java@IT·互联网JavaEE 学习专题

JDBC优化  -Dbutils组件

2017-05-02  本文已影响54人  Dl_毛良伟
    @Test
    public void testQuery() throws Exception {
        String sql = "select * from admin where id=?";
        // 获取连接
        conn = JdbcUtil.getConnection();
        // 创建DbUtils核心工具类对象
        QueryRunner qr = new QueryRunner();
        // 查询
        Admin admin = qr.query(conn, sql, new ResultSetHandler<Admin>() {

            // 如何封装一个Admin对象
            public Admin handle(ResultSet rs) throws SQLException {
                if (rs.next()) {
                    Admin admin = new Admin();
                    admin.setId(rs.getInt("id"));
                    admin.setUsername(rs.getString("userName"));
                    admin.setPwd(rs.getString("pwd"));
                    return admin;
                }
                return null;
            }

        }, 7);

        // 测试
        System.out.println(admin);
        // 关闭
        conn.close();

    }
查询id为7的数据
    @Test
    public void upDateTest()throws SQLException {
        String sql = "select * from admin";
        conn = JdbcUtil.getConnection();
        QueryRunner qr = new QueryRunner();
        List<Admin> list = qr.query(conn, sql, new BeanListHandler<Admin>(Admin.class));
        System.out.println(list);
        conn.close();
    }

image.png
  1. query(Connection conn,String sql,Object[ ] params,ResultSetHandler rsh) 这个方法执行数据库查询语句,SQL语句中的参数通过params数组传递,获得的数据库记录保存到ResultSetHandler类型的rsh对象中,并且把这个对象作为方法的返回值进行返回。这个方法内部会把所使用的ResultSet对象和PrepareStatement关闭,但是Connection对象还需要调用者自行负责关闭。
  2. query(String sql,Object[ ] params,ResultSetHandler rsh) 这个方法作用与上面方法一样,不同的地方是,这个方法使用Connection对象是通过当前QueryRunner对象所封装的数据源自动获得的。方法内部会关闭连接对象,不需要方法嗲用者自己关闭连接对象。
  3. query(Connection conn,String sql,ResultSetHandler rsh) 这个方法执行不需要参数的SQL查询语句。
删除id为8的数据
代码部分
    /**
     * 删除
     * @throws SQLException
     */
    @Test
    public void update()throws SQLException {
        String sql = "delete from admin where id=?";
        conn = JdbcUtil.getConnection();
        QueryRunner qr = new QueryRunner();
        qr.update(conn, sql, 8);
    }
id为8的数据删除成功
  1. update(Connection conn,String sql,Object[ ] params) 这个方法主要执行insert、update和delete等不需要返回结果集对象的SQL语句,方法调用者需要自己负责Connection对象的关闭
  2. update(String sql,Object[ ] params) 这个方法使用的连接对象是通过数据源所获得的,方法内部会关闭连接对象,不需要调用自己关闭连接对象。
上一篇 下一篇

猜你喜欢

热点阅读