框架学习之Hibernate 第三节 session接口以及get/load/persist方法

1.session接口

幻灯片10

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方法

save_method

 

结果:

saveconsole

 

数据库中没有插入数据

persist3

 

使用 persist 方法

persist

转载于:https://www.cnblogs.com/yinger/archive/2011/08/13/2136957.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值