hibernate 二种方法来select 的不同之处
get: 一执行就会发出sql来查询,如果打不到数则返回一个null
load : 执行后生成代理的对象,不发sql语句,当要用到查到的对象时才发sql
如果找不到相应的数据,则会抛异常!!
get 与load 查询后的状态都是presistent的状态。
//查询一条记录
public void testGetMehod() {
Session session = null;
try {
session = HibernateUtils.getSession();
session.beginTransaction();
//presistent
User user = (User)session.get(User.class, "4028819a204b85a601204b85a7f60001");
System.out.println("user' name "+user.getName());
user.setName("新数据");
session.getTransaction().commit();
}catch(Exception e) {
session.getTransaction().rollback();
e.printStackTrace();
}finally {
HibernateUtils.closeSession(session);
}
}
//查询一条记录
public void testLoadMehod() {
Session session = null;
try {
session = HibernateUtils.getSession();
session.beginTransaction();
//presistent
User user = (User)session.load(User.class, "4028819a204b85dfa601204b85a7f60001");
System.out.println("user' name "+user.getName());
user.setName("新数据");
session.getTransaction().commit();
}catch(Exception e) {
session.getTransaction().rollback();
e.printStackTrace();
}finally {
HibernateUtils.closeSession(session);
}
}
分享到:
相关推荐
get方法首先查询session缓存,没有的话查询二级缓存,最后查询数据库;反而load方法创建时首先查询session缓存,没有就创建代理,实际使用数据时才查询二级缓存和数据库
hibernate中get和load的区别共5页.pdf.zip
NULL 博文链接:https://ysj5125094.iteye.com/blog/1897557
NULL 博文链接:https://811417208-qq-com.iteye.com/blog/506950
NULL 博文链接:https://quicker.iteye.com/blog/658451
NULL 博文链接:https://cici9898-007.iteye.com/blog/1847710
get和load方式是根据id取得一个记录 下边详细说一下get和load的不同,因为有些时候为了对比也会把find加进来。 1.从返回结果上对比: load方式检索不到的话会抛出org.hibernate.ObjectNotFoundException异常 get方法...
博文链接:https://log-cd.iteye.com/blog/205166
Hibernate中根据Id单条查询获取对象的方式有两种,分别是get()和load(),来看一下这两种方式的区别。 1. get() 使用get()来根据ID进行单条查询: User user=session.get(User.class, "1"); 当get()方法被调用的时候...
Hibernate中有两个极为相似的方法get()与load(),他们都可以通过指定的实体类与ID从数据库中读取数据,并返回对应的实例,但Hibernate不会搞两个完全一样的方法的
Hibernate 难点解析: hibernate中uuid和...Hibernate get与load的区别 hibernate二级缓存中list和iterator的用法 Hibernate中的对象有三种状态: lock和update区别 save 和update区别 update 和saveOrUpdate区别
今天小编就为大家分享一篇关于Hibernate中Session.get()方法和load()方法的详细比较,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
Hibernate 学习笔记 get和load的区别 一对一,一对多,多对多 悲观锁,乐观锁 hibernate查询语言hql hibernate一级缓存、二级缓存 抓取策略
Hibernate查询首先介绍get()和load()方法的区别:get()方法和load()方法的区别主要在于对二级缓存的使用上。load()方法会使用二级缓存,而get()方法在一级缓存没有找到会直接查询数据库,不会去二级缓存中查找。 get...
//该方法将到classpath下解析hibernate.cfg.xml中的配置,如果不用Hibernate默认的配置文件名和路径,可在该方法中指定Hibernate配置文件的名称和路径 2.用Configuration对象获取SessionFactory和Session对象:...
04_Session接口及get|load|persist方法 05_实体对象的三种状态与saveOrUpdate方法 06_完善HibernateUtil类及hql查询入门 07_实体类或属性名与数据库关键字冲突问题 10_使用Hibernate完成CRUD实验的步骤说明 11_...
Hibernate中使用了一级缓存和二级缓存的机制来提高程序的性能. 一 为什么要使用缓存? 缓存是一块存储区域,可能是一块内存,也可能是一块硬盘.缓存能起到缓冲的作用,把程序经常使用...