zoukankan      html  css  js  c++  java
  • Hibernate 对象的生命周期及CRUD操作

    对象状态及生命周期

    1.Transient(瞬时状态):new的对象为瞬时态 session中没有数据,数据库中没有数据。

    2.Persistent(持久状态):被session管理的对象为持久状态,在持久状态下,提交事务,清理缓存时发现session中数据和数据库中数据不一直时,将会把session中的数据更新到数据中 session中有,数据库中也有。

    3.Detached(游离状态|托管状态)  :与session交互过的对象为游离态当事务提交完成,hibernate生命周期结束之后持久合租昂台变为游离状态 session中没有, 数据库中有。

    Save(),Update()

     get()

      get()中id可以是任何类型,但是必须实现序列化接口。查询得到的对象为Object类型,需要强转为自己需要的类型。

    Load()

    get/load的区别:

      1.get会立即查询对象,load在使用时才会查询对象

      2.get找不到对象时返回null,load找不到对象时会抛出ObjectNotFoundException异常。

    delete()

    1.手动构造一个对象,指定其主键,是可以删除该对象的,但是不建议这么使用。
     2.通过从数据库中加载该对象然后删除,可以进行判断进行避免异常,提高程序的健壮

     

    注:本文是在学习期间根据网上视频写的学习笔记,如有侵权请联系删除!

  • 相关阅读:
    mysql随笔 -- 基本sql语句
    jdbc驱动底层代码(通过控制器查询数据库的数据)
    项目实战:数据库,服务器,浏览器的登录页面的实现
    JSP随笔
    Session的学习
    servlet请求转发
    Servlet的流程总结
    collection 知识点3
    linux虚拟机,Centos7部署django项目
    python高级函数以及文件操作
  • 原文地址:https://www.cnblogs.com/wuyx/p/7919454.html
Copyright © 2011-2022 走看看