Hibernate和JDBC实现CRUD操作的比较

来源:互联网 发布:服装erp软件排行 编辑:程序博客网 时间:2024/05/21 11:06
使用JDBC实现CRUD操作:
查询操作:
Java代码 复制代码 收藏代码
  1. public class UserDAO {   
  2.   public User findUserById(int id){   
  3.     User userInfo = null;   Connection  con = DBConnection.getConnection();   
  4.     PreparedStatement pst = null;   String sql = “select * from userInfo where id=? ”;     
  5.     ResultSet rs = null;   
  6.     try {   
  7.       pst = con.prepareStatement(sql);  pst.setInt(1,id);   
  8.       rs = pst.executeQuery();   
  9.       if(rs.next()){   
  10.         userInfo = new User();  userInfo.setId(rs.getInt("id"));   
  11.         userInfo.setPassword(rs.getString("pass"));   
  12.         userInfo.setUserName(rs.getString(“user_name"));   
  13.       }   
  14.     } catch (SQLException e) {e.printStackTrace(); }   
  15.     finally{   
  16.       try {      rs.close();      pst.close();      con.close();      } catch (Exception e) { }   
  17.     }    
  18.     return userInfo;   
  19.   }  
public class UserDAO {  public User findUserById(int id){    User userInfo = null;Connection  con = DBConnection.getConnection();    PreparedStatement pst = null;   String sql = “select * from userInfo where id=? ”;    ResultSet rs = null;    try {      pst = con.prepareStatement(sql);pst.setInt(1,id);      rs = pst.executeQuery();      if(rs.next()){        userInfo = new User();userInfo.setId(rs.getInt("id"));        userInfo.setPassword(rs.getString("pass"));        userInfo.setUserName(rs.getString(“user_name"));      }    } catch (SQLException e) {e.printStackTrace(); }    finally{      try {      rs.close();      pst.close();      con.close();      } catch (Exception e) { }    }     return userInfo;  }


添加操作:

Java代码 复制代码 收藏代码
  1. public void addUser(User user) throws Exception{   
  2. Connection con = DBConnection.getConnection();   
  3. PreparedStatement pst = null;    
  4. String sql = “insert into  userInfo(user_name,pass) values(?,?)”;   
  5. try {   
  6. pst = con.prepareStatement(sql);   
  7. pst.setString(1, user.getUserName());   
  8. pst.setString(2,user.getPassword());   
  9. pst.executeUpdate();   
  10. }finally{   
  11.     。。。   
  12. }   
  13. }  
public void addUser(User user) throws Exception{Connection con = DBConnection.getConnection();PreparedStatement pst = null; String sql = “insert into  userInfo(user_name,pass) values(?,?)”;try {pst = con.prepareStatement(sql);pst.setString(1, user.getUserName());pst.setString(2,user.getPassword());pst.executeUpdate();}finally{。。。}}


删除操作:

Java代码 复制代码 收藏代码
  1. public void deleteUser(int id)  throws Exception{   
  2. Connection con = DBConnection.getConnection();   
  3. PreparedStatement pst = null;    
  4. String sql = “delete from  userInfo where id = ?”;   
  5. try {   
  6. pst = con.prepareStatement(sql);   
  7. pst.setInt(1, id);   
  8. pst.executeUpdate();   
  9. }finally{   
  10.     。。。   
  11. }   
  12. }  
public void deleteUser(int id)  throws Exception{Connection con = DBConnection.getConnection();PreparedStatement pst = null; String sql = “delete from  userInfo where id = ?”;try {pst = con.prepareStatement(sql);pst.setInt(1, id);pst.executeUpdate();}finally{。。。}}


更新操作:

Java代码 复制代码 收藏代码
  1. public void updateUser(User user) throws Exception {   
  2. Connection con = DBConnection.getConnection();   
  3. PreparedStatement pst = null;    
  4. String sql = “update  userInfo set name = ? ,password = ? where id = ?”;   
  5. try {   
  6. pst = con.prepareStatement(sql);   
  7. pst.setString(1,user.getName());   
  8. pst.setString(2,user.getPassword());   
  9. pst.setInt(3, id);   
  10. pst.executeUpdate();   
  11. catch (SQLException e) {   
  12.     e.printStackTrace();   
  13. }finally{   
  14.     。。。   
  15. }   
  16. }  
public void updateUser(User user) throws Exception {Connection con = DBConnection.getConnection();PreparedStatement pst = null; String sql = “update  userInfo set name = ? ,password = ? where id = ?”;try {pst = con.prepareStatement(sql);pst.setString(1,user.getName());pst.setString(2,user.getPassword());pst.setInt(3, id);pst.executeUpdate();} catch (SQLException e) {e.printStackTrace();}finally{。。。}}

 

使用Hibernate实现CRUD操作:

Java代码 复制代码 收藏代码
  1. public class UserDAO {   
  2. public User findUserById(int id){   
  3.     return session.get(User.class,id);   
  4. }   
  5. public void addUser(User user){   
  6.     session.save(user);   
  7. }   
  8. public void updateUser(User user){   
  9.         session.update(user);   
  10. }   
  11. public void deleteUser(int id){   
  12.         User user = new User();   
  13.         user.setId(id);   
  14.         session.delete(user);   
  15. }   
  16. }  
public class UserDAO {public User findUserById(int id){return session.get(User.class,id);}public void addUser(User user){session.save(user);}public void updateUser(User user){session.update(user);}public void deleteUser(int id){User user = new User();user.setId(id);session.delete(user);}}

 

类型一:

        //得到Configuration
        Configuration configuration=new Configuration().configure();
        //得到一个会话工厂
        SessionFactory sessionFactory=configuration.buildSessionFactory();
        //得到一个Session对象
        Session session=sessionFactory.openSession();
        //开始一个事务
        Transaction transaction=session.beginTransaction();
        /*//添加一个book
        Books book=new Books();
        book.setAuthor("c");
        book.setName("wh");
        session.save (book);*/
        /*//查询book
        Books book=(Books) session.load(Books.class, 2);
        System.out.println(book.getAuthor());*/
        /*//更新book
        Books book=(Books) session.load(Books.class, 2);
        book.setAuthor("chen");
        book.setName("Spring");*/
        /*//删除book
        Books book=(Books) session.load(Books.class, 14);
        session.delete (book);*/
        //提交事务
        transaction.commit();
        //关闭session
        session.close();

 

类型二:

        Configuration configuration=new Configuration().configure();
        SessionFactory sessionFactory=configuration.buildSessionFactory();
        Session session=sessionFactory.openSession();
        Transaction transaction=session.beginTransaction();
        /*//更新
        Query query=session.createQuery("update Books set name='hibernate' where id=:id");
        query.setInteger("id", 1);
        query.executeUpdate();*/
        //查询所有字段
        /*Query query=session.createQuery("from Books");
        List<Books > list=query.list();
        for(Books book:list){
            System.out.println("作者:"+book.getAuthor());       
        }*/
        /*//查询多个字段
        Query query=session.createQuery("select name,author from Books");
        List<Object[] > list2=query.list();
        for(Object[] object:list2){
            String author=(String) object[1];
            System.out.println("作者:"+author);       
        }*/
        //查询一个字段
        /*Query query=session.createQuery("select author from Books");
        List<String > list3=query.list();
        for(String author:list3){
            System.out.println("作者:"+author);   
        }*/
        transaction.commit();
        if(session!=null||!"".equals(session)){
            System.out.println("关闭session。。。。");
        }

 

//类型三:

     criteria接口 的简单使用

 

                     ts=session.beginTransaction();     

                     Criteria cri=session.createCriteria(Employee.class).

                     setMaxResults(2).addOrder(Order.desc("id") );

                     List<Employee> list=cri.list();

                     for(Employee e: list){

                            System.out.println(e.getAaaid());

                    

                     ts.commit();