|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
专门做了这个例子;而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能成为真正意义上的标准。 |
|