1.session接口
2.get和load方法的区别
load方法的返回值一定不是null(这里要注意一下相应的JavaBean的构造方法,一定要有一个默认的构造方法)
懒加载:如果执行load方法,没有查找结果,load方法构造一个结果类的实例
//根据id查找
@Override
public User findUserById(int id) {
User u = null;
Session s = null;
try{
s = HibernateUtils.getSession();
u = (User)s.get(User.class, id);//默认就是根据id查找
//懒加载
// u = (User)s.load(User.class, id);//load方式的返回值永远都不可能是空,load不会立刻去访问数据库,直到第一次去使用时才访问
// System.out.println(u.getName()+" "+u.getBirthday());//如果没有这一句打印语句会报错!懒加载的异常
}catch(Exception e){
e.printStackTrace();
}finally{
if(s!=null){
s.close();
}
}
return u;
}
3.sava和persist方法的区别
在没有开启事务时,save可以插入数据,但是由于事务回滚,数据又消失了
而persist方法在没有开启事务时却根本不可以插入数据(视频上老师是这么讲的,但是我测试的结果刚好相反!)
我是用的Hibernate 3.0 ,两个方法的结果是一样的!。。。。WY。。。
使用 save方法
结果:
数据库中没有插入数据
使用 persist 方法