JDBC和DBUtils区别(查询时jdbc只能返回ResultSet需要po转vo,dbutils返回的BeanListHandler与BeanHandler对应集合与对象)

17:34 2013/6/7

JDBC

    //添加客户

    public void addNewCustomer(Customer c) throws DAOException {

        Connection conn = null;

        PreparedStatement pst = null;

        try{

            conn = JDBCUtils.getConnection();

            pst = conn.prepareStatement("insert into customer values(?,?,?,?,?,?,?,?)");

            //赋值

            pst.setString(1, c.getCid());

            pst.setString(2, c.getName());

            pst.setString(3, c.getGender());

            pst.setDate(4, new java.sql.Date(c.getBirthday().getTime()));

            pst.setString(5,c.getCellphone());

            pst.setString(6, c.getEmail());

            pst.setString(7, c.getType());

            pst.setString(8,c.getDescription());

            //执行

            pst.executeUpdate();

        }catch(Exception ex){

            throw new DAOException(ex);

        }finally{

            JDBCUtils.release(conn, pst, null);

        }

    }

查:

    //查询所有客户

    public List<Customer> findAllCustomer() throws DAOException {

        List<Customer> list = new ArrayList<Customer>();

        

        Connection conn = null;

        PreparedStatement pst = null;

        ResultSet rs = null;

        try{

            conn = JDBCUtils.getConnection();

            pst = conn.prepareStatement("select * from customer");

            rs = pst.executeQuery();

            while(rs.next()){

                //取每个客户

                Customer c = new Customer();

                c.setCid(rs.getString("cid"));

                c.setName(rs.getString("name"));

                c.setGender(rs.getString("gender"));

                c.setBirthday(rs.getDate("birthday"));

                c.setCellphone(rs.getString("cellphone"));

                c.setEmail(rs.getString("email"));

                c.setType(rs.getString("type"));

                c.setDescription(rs.getString("description"));

                

                //放入集合

                list.add(c);

            }

        }catch(Exception ex){

            throw new DAOException(ex);

        }finally{

            JDBCUtils.release(conn, pst, rs);

        }

        

        return list;

    }

JDBC连接池DBUtils

增:

    public void create(User user){

        try {

            // 1 核心对象

            QueryRunner runner = new QueryRunner(JdbcUtils.getDataSource());

            // 2 sql

            String sql = "insert into user(id,username,password) values(?,?,?)";

            // 3 准备数据

            Object[] params = {user.getId(),user.getUsername(),user.getPassword()};

            // 4 执行

            runner.update(sql, params);

        } catch (SQLException e) {

            throw new RuntimeException(e.getMessage(), e);

        }

    }

查:

    public User findByUsernameAndPassword(String username, String password) {

        try {

            QueryRunner runner = new QueryRunner(JdbcUtils.getDataSource());

            

            String sql = "select * from user where username = ? and password = ?";

            

            Object[] params = {username,password};

            

            return runner.query(sql, new BeanHandler<User>(User.class) ,params);

        } catch (SQLException e) {

            throw new RuntimeException(e.getMessage(), e);

        }

    }

    

    

    

}

 

你可能感兴趣的:(ResultSet)