仓酷云
标题:
发布一篇Hibernate优化办法
[打印本页]
作者:
山那边是海
时间:
2015-1-18 11:03
标题:
发布一篇Hibernate优化办法
专门做了这个例子;而java的这个例子好像就是为了教学而写的,很多教学目的的例子是不考虑优化、性能的。
Hibernate优化办法一:批量修正和删除
在Hibernate2中,假如必要对任何数据举行修正和删除操纵,都必要先实行查询操纵,在失掉要修正大概删除的数据后,再对该数据举行响应的操纵处置。在数据量少的情形下接纳这类处置体例没有成绩,但必要处置大批数据的时分便可能存在以下的成绩:
◆占用大批的内存。
◆必要屡次实行update/delete语句,而每次实行只能处置一条数据。
以上两个成绩的呈现会严峻影响体系的功能。因而,在Hibernate3中引进了用于批量更新大概删除数据的HQL语句。如许,开辟职员就能够一次更新大概删除多笔记录,而不必每次都一个一个地修正大概删除纪录了。
假如要删除一切的User对象(也就是User对象所对应表中的纪录),则能够间接利用上面的HQL语句:
deleteUser
而在实行这个HQL语句时,必要挪用Query对象的executeUpdate()办法,详细的实比方下所示:
StringHQL="deleteUser";
Queryquery=session.createQuery(HQL);
intsize=query.executeUpdate();
接纳这类体例举行数据的修正和删除时与间接利用JDBC的体例在功能上相差无几,是保举利用的准确办法。
假如不克不及接纳HQL语句举行大批数据的修正,也就是说只能利用掏出再修正的体例时,也会碰到批量拔出时的内存溢出成绩,以是也要接纳下面所供应的处置办法来举行相似的处置。
Hibernate优化办法二:利用SQL实行批量操纵
在举行批量拔出、修正和删除操纵时,间接利用JDBC来实行原生态的SQL语句无疑会取得最好的功能,这是由于在处置的过程当中省略大概简化了以下处置内容:
●HQL语句到SQL语句的转换。
●Java对象的初始化。
●Java对象的缓存处置。
可是在间接利用JDBC实行SQL语句时,有一个最主要的成绩就是要处置缓存中的Java对象。由于经由过程这类底层体例对数据的修正将不克不及关照缓存往举行响应的更新操纵,以包管缓存中的对象与数据库中的数据是分歧的。
<p>
什么时候上述的三种开发工具能和三为一,什么时候java的竞争力才更强,才有机会拉拢更多的程序员投入到对java的开发上,因为到时的开发工具将会比.net的更简单。还有一点也很关键,什么时候java推出的jsf能成为真正意义上的标准。
作者:
飘灵儿
时间:
2015-1-20 13:19
自从Sun推出Java以来,就力图使之无所不包,所以Java发展到现在,按应用来分主要分为三大块:J2SE,J2ME和J2EE,这也就是Sun ONE(Open Net Environment)体系。J2SE就是Java2的标准版,主要用于桌面应用软件的编程;J2ME主要应用于嵌入是系统开发,如手机和PDA的编程;J2EE是Java2的企业版,主要用于分布式的网络程序的开发,如电子商务网站和ERP系统。
作者:
透明
时间:
2015-1-29 07:14
一直感觉JAVA很大,很杂,找不到学习方向,前两天在网上找到了这篇文章,感觉不错,给没有方向的我指了一个方向,先不管对不对,做下来再说。
作者:
蒙在股里
时间:
2015-2-14 09:50
有时间再研究一下MVC结构(把Model-View-Control分离开的设计思想)
作者:
愤怒的大鸟
时间:
2015-3-4 05:33
是一种为 Internet发展的计算机语言
作者:
若相依
时间:
2015-3-11 17:31
设计模式是高级程序员真正掌握面向对象核心思想的必修课。设计模式并不是一种具体"技术",它讲述的是思想,它不仅仅展示了接口或抽象类在实际案例中的灵活应用和智慧
作者:
再见西城
时间:
2015-3-19 03:52
Java是一个纯的面向对象的程序设计语言,它继承了 C++语言面向对象技术的核心。Java舍弃了C ++语言中容易引起错误的指针(以引用取代)、运算符重载(operator overloading)
欢迎光临 仓酷云 (http://ckuyun.com/)
Powered by Discuz! X3.2