zoukankan      html  css  js  c++  java
  • 操纵持久化对象

    对象状态及生命周期

    • 瞬时状态transient:构造对象(session中没有,数据库中没有)
    • 持久状态persistent:对象被session管理。(session中有,数据库中有)

         持久状态下:当提交事务,清理缓存时发现session中数据和数据库中不一致时,将会把session中的数据更新到数据库中;在保存以后再修改对象,那么将会产生多条sql语句,会造成效率较低,所有建议在save前进行修改。

    • 游离状态detached:session关闭后(session里面没有,数据库里面有)
    //对于news对象来说其对应阶段状态
    public void testSave(){
            Session session = null;
            Transaction tx =null;
            News news =null;
            try{
                session = HibernateUtils.getSession();
                tx = session.beginTransaction();
                //构造对象---瞬时状态
                news = new News();
                news.setNewsTitle("111");
                news.setNewsContent("2222");
                //持久状态,user被session管理,并且有id有值
                session.save(news);
                news.setNewsTitle("8888");
                tx.commit();
            }catch(Exception e){
                e.printStackTrace();
                tx.rollback();
            }finally{
                HibernateUtils.close(session);
            }
            //游离状态
            System.out.println(news.getNewsTitle());
        }
  • 相关阅读:
    MySQL
    权限(二)
    权限(一)
    化栈为队
    栈的最小值
    实现简易版react中createElement和render方法
    12.整数转罗马数字
    call,apply,bind的理解
    8. 字符串转换整数 (atoi)
    172.阶乘后的0
  • 原文地址:https://www.cnblogs.com/zhouyeqin/p/7194070.html
Copyright © 2011-2022 走看看