日期:2014-05-16  浏览次数:20498 次

Session接口操作数据库的核心方法

1.save()——规范例子:
??

 public void addUser(User user){
  	 Session session = null;
  	 Transaction tx = null;
  	 try{
   		 session = HibernateUtil.getSession();
   		 tx.session.beginTransaction();
   		 session.save(user);
   		 tx.commit();
 	  }catch(HibernateException e){
   		 if(tx != null){
   			  tx.rollback();
 	 	  }
  		  throw e;
  	 }finally{
  		  if(session != null){
  			   session.close();
  		  }
 	  }
  }

?
?2.get()——get方法可以不要打开事务,会立刻访问数据库

 public User getUser(int id){
  	 Session session = null;
  	 //Transaction tx = null;
  	 try{
  	  session = HibernateUtil.getSession();
  	  //tx.session.beginTransaction();
  	  session.get(User.class,id);
  	  //tx.commit();
  	  return user;
 	  }finally{
  		  if(session != null){
  		   session.close();
  		  }
  	 }
  } 

?
?显示sql语句配置:
<properties name="show_sql" value="true">
3.load()——和get类似。当使用的才加载,永远都不会为空,返回的是代理不会立即访问数据库
即:if(user != null)是不对的它永远都不为空。
4.merge()和更新一样
5.persist()和save()一样,区别在于有没有开启事务。persist在事务外不会产生insert语句
6.saveOrUpdate()
7.delete() 删除对象
8.update() 更新对象,如果数据库中没有记录会出现异常
9.lock() 把对象变成持久对象但不会同步对象的状态