博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JavaEE笔记(二)
阅读量:5238 次
发布时间:2019-06-14

本文共 1638 字,大约阅读时间需要 5 分钟。

查询load()和get()的区别

   # 以下查询都是根据id查询    // Load和Get都会在第一次查询的是创建一个一级缓存查询语句    // 下一次查询的时候从缓存中查询是否有缓存的语句    // 如果有只发送一条查询语句    Student getS_1 = session.get(Student.class,1);    Student getS_2 = session.get(Student.class,1);    // 发送一条MySQL语句[SELECT * FROM student WHERE ID = ?]    Student loadS_1 = session.load(Student.class,1);    Student loadS_2 = session.load(Student.class,1);    // 发送一条MySQL语句[SELECT * FROM student WHERE ID = ?]    // 因为一级缓存中有[SELECT * FROM student WHERE ID = ?]语句            /**    * Load懒加载,如果不调用查询的数据,那么不发送信息    * Get即使不调用,也会发送查询信息    * 发送查询MySQL语句[SELECT * FROM student WHERE ID = ?]    */        /**    * 如果查询没有的信息    * load会抛出异常ObjectNotFount    * get会返回null    */

Hibernate对象的三种状态

(1)瞬态:

表示该实体对象在内存中是自由存在的,也就是说与数据库中的数据没有任何的关联即,该实体从未与任何持久化上下文联系过,没有持久化标识(相当与主键)。瞬态实体的特征有:

  与数据库中的记录没有任何关联,也就是没有与其相关联的数据库记录 与Session没有任何关系,也就是没有通过Session对象的实例对其进行任何持久化的操作。
(2)持久态:

指该实体对象处于Hibernate框架所管理的状态,也就是说这个实体对象是与Session对象的实例相关的。处于持久态的实体对象的最大特征是对其所作的任何变更操作都将被Hibernate持久化到数据库中。处于持久态的对象具有的特征为:              

  每个持久态对象都于一个Session对象关联
  处于持久态的对象是于数据库中的记录相关联的
  Hibernate会根据持久态对象的属性的变化而改变数据库中的相应记录
(3)游离态:

处于持久态的实体对象,当他不再与Session对象关联时,这个对象就变成了游离态。游离态对象的特征有:

  游离态对象一定是由持久态对象转换而来
  游离态实体不再于Session关联
  游离态实体对象与数据库中的数据没有直接联系,主要表现在对其进行的修改不再影响到数据库中的数据
  游离态实体对象在数据库中有相应的数据记录(如果该记录没有被删除)

获取Session回话

// 获取当前Session// #注意:需要配置xml文件// 
thread
// 获取Session是同一个SessionsessionFactory.getCurrentSession();// 获取新的SessionsessionFactory.openSession();

添加save()和saveOrUpdate()的区别

// save执行保存操作,更倾向于添加一个新的对象s.save(obj);// saveOrUpdate() 倾向不确定插入和更新// 有主键就执行更新,如果没有主键就执行插入s.saveOrUpdate(obj);

 

转载于:https://www.cnblogs.com/HackerBlog/p/6075069.html

你可能感兴趣的文章
UVALive - 3635 - Pie(二分)
查看>>
集合类List,set,Map 的遍历方法,用法和区别
查看>>
Scala入门系列(十):函数式编程之集合操作
查看>>
pulseaudio的交叉编译
查看>>
Cracking The Coding Interview 1.1
查看>>
vb.net 浏览文件夹读取指定文件夹下的csv文件 并验证,显示错误信息
查看>>
NetworkInterface的使用
查看>>
元素自动居中显示
查看>>
JDBC 时间处理
查看>>
hadopp 环境搭建
查看>>
【2018】听懂你能看懂的句子
查看>>
mybatis源代码分析:深入了解mybatis延迟加载机制
查看>>
Flask三剑客
查看>>
Hibernate-缓存
查看>>
【BZOJ4516】生成魔咒(后缀自动机)
查看>>
【BZOJ3052】【UOJ#58】【WC2013】糖果公园(树上莫队)
查看>>
荷兰国旗问题
查看>>
Process 启动参数问题
查看>>
提高PHP性能的10条建议
查看>>
我,不会吵,不会闹,心痛了用沉默代替
查看>>