hibernate多表查询 在 hibernate 中直接操作 jdbc 接口

hibernate多表查询 在 hibernate 中直接操作 jdbc 接口

ID:13678482

大小:44.94 KB

页数:14页

时间:2018-07-23

hibernate多表查询 在 hibernate 中直接操作 jdbc 接口_第1页
hibernate多表查询 在 hibernate 中直接操作 jdbc 接口_第2页
hibernate多表查询 在 hibernate 中直接操作 jdbc 接口_第3页
hibernate多表查询 在 hibernate 中直接操作 jdbc 接口_第4页
hibernate多表查询 在 hibernate 中直接操作 jdbc 接口_第5页
资源描述:

《hibernate多表查询 在 hibernate 中直接操作 jdbc 接口》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、在Hibernate中直接操作JDBC接口简介: Hibernate在处理多表关联及分组排序等复杂数据库查询操作时,其固有的O-R映射机制会产生大量冗余SQL操作,系统性能比传统的JDBC低很多。本文分析了Hibernate产生此类问题的原因,提出了一个在Hibernate框架内直接操作JDBC的接口的解决方案,在实际项目中验证了该解决方案可以有效提高此类查询的效率。文中提供的示例代码可以直接运用于使用Hibernate框架的J2EE系统项目。在Hibernate框架中提供直接操作JDBC接口的原因Hibernate框架在处理复杂查询方

2、面的问题Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用面向对象编程思维来操纵数据库。Hibernate的优势在于屏蔽了数据库细节,对于新增修改删除的数据层操作,不再需要跟具体的SQL语句打交道,简单的对对象实例进行增删改操作即可。但是,对于多表关联、分组统计、排序等复杂的查询功能时,由于Hibernate自身的O-R映射机制,父子表之间关联取数据会产生大量冗余的查询操作,性能低下。此类情况下,直接使用JDBC的SQL语句反而更加灵活和高效。Hiberna

3、te框架处理复杂查询问题实例分析考虑如下数据库实体示例,表A为主表,表B和表C为子表,A与B、A与C表均为1对多关系,在B表和C表中以A_ID外键字段关联A表父记录。图1.数据库实体示例图在Hibernate框架中,通常采用以下配置方式完成A表与B,C表父子实体之间的级联查询操作,Hibernate实体配置xml如下:清单1.hibernate实体配置xmlA.hbm.xml:

4、nname="ID"/>

5、ne-to-manyclass="XXX.XXX.C"/>B.hbm.xml:<

6、/property>C.hbm.xml

7、ate-mapping> 对应的Hibernate领域实体类代码示例如下:清单2.hibernate实体类示例A.java:publicclassAimplementsjava.io.Serializable,Comparable{privatelongid;privateSetchildren_b=newHashSet();privateSetchildren_c=newHashSet();publicA(longid){this.id=id;}publiclonggetId(){returnid;}publicvoids

8、etId(longid){this.id=id;}publicSetgetChildern_b(){returnchildren_b;}publicvoidsetChildren_b(Setchildren

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。