当前位置:编程学习 > JAVA >>

hibernate get() load()的效率问题?想不通,想不通SOS!!

问题:
hibernate get() load()的效率问题?
1.get立刻查询数据库,然后把实体对象传给jsp去展示
2.load不立刻查询数据库,把实体对象传给jsp,jsp访问实体对象的属性时,才会去查数据库,
疑惑:
1.不管是get还是load,都会去查数据库,只是早晚的区别,为什么说load比get效率高呢?
2.而且如果使用load,还要一直保持一个session(session中封装了一个数据库的连接),此session不能提前关闭,只有这样在jsp中才能访问到此实体对象的属性。
一直保持一个session,相当于一直保持了一个数据库连接,这样不是增加了数据库的压力吗?
百思不得其解,恳求哪位大侠说下最佳实践和内部原理!!!
Hibernate session 数据库 --------------------编程问答-------------------- --------------------编程问答-------------------- 自己顶下!大家都来分析下吧 --------------------编程问答-------------------- 木有人来回答啊,我接着顶!!! --------------------编程问答--------------------
引用
http://developer.51cto.com/art/200906/132357.htm
--------------------编程问答-------------------- 我觉得你所说的这个“效率”是对整个项目而已,而不是get()、load()对数据库操作的效率,这个有点类似于懒加载吧(lazy),当我用到这个数据的时候才去对这个数据进行load,而不是不管用不用得到这个数据都去get。这样,对整个项目来说就不会去get一些没用的数据。 --------------------编程问答-------------------- hibernate对于load方法认为该数据在数据库中一定存在,可以放心的使用代理来延迟加载,如果在使用过程中发现了问题,只能抛异常;而对于get方法,hibernate一定要获取到真实的数据,否则返回null。
--------------------编程问答-------------------- 这2个方法一直搞的不是特别的清楚! --------------------编程问答-------------------- http://www.cnblogs.com/binjoo/articles/1621254.html --------------------编程问答-------------------- 这就是延迟加载的问题嘛 !!  当你在jsp页面使用你的实体对象时。e 这个bean就是个就处于游离状态 。处于此状态的对象米有初始化当然要报错了。 
可以在session之内 先初始化对象 Hibrnate.initialize() 在使用。 --------------------编程问答-------------------- 用多了就知道了  --------------------编程问答-------------------- 没研究过 就这么用着了  --------------------编程问答-------------------- 1.load用到的时候再去查库,自然比get没用到就去查库效率高些;
2.点击按钮,到后台操作,再返回前台,这期间session一直开着;前台页面展现出来的同时,session已经关闭了;不造成压力(过滤器拦截请求,请求结果返回后,关闭session)
补充:Java ,  Java EE
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,