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);
        }
    }
    
    
    
}

 

posted @ 2014-05-21 19:11  周建旭  阅读(1826)  评论(0编辑  收藏  举报