Hibernate和JDBC实现CRUD操作的比较

使用JDBC实现CRUD操作:
查询操作:
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;
  }


添加操作:

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{
	。。。
}
}


删除操作:

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{
	。。。
}
}


更新操作:

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操作:

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

 

猜你喜欢

转载自chenzheng8975.iteye.com/blog/1661537