zoukankan      html  css  js  c++  java
  • 框架学习之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

  • 相关阅读:
    jquery mobile 按钮部件(包含图标的使用)
    jquery mobile页面切换效果(Flip toggle switch)(注:jQuery移动使用的数据属性的列表。 )
    jquery mobile基本结构搭建
    xshell连接虚拟机
    virtualbox安装ubantu系统
    python对象关系映射ORM
    javascript的reverse,sort方法,concat方法
    Array对象的方法push,pop unshift,shift
    javascript的Array对象
    javascript的String字符串对象
  • 原文地址:https://www.cnblogs.com/yinger/p/2136957.html
Copyright © 2011-2022 走看看