讨论下多表关联的查询,是用SQL还是通过框架配置?

qing878 2011-11-28 11:48:06
多表关联

1.通过SQL自己写where tableA.id=tableB.aid

2.通过框架去关联两个表,bean tableA 中加一个属性 tableB,然后框架会自己去填充tableB的属性



1缺陷:如果用框架写SQL,移植性差,bean不好写,不符合OO了

2缺陷:效率较低,如有50条记录在一页要关联,连续查50次数据库。(不考虑命中)
...全文
138 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
qing878 2011-11-30
  • 打赏
  • 举报
回复
嗯, 我觉得还是用框架吧,如果做报表就用SQL吧
sunnylyy 2011-11-29
  • 打赏
  • 举报
回复
大数据量的查询的话,还是第一种吧,方便做些优化,指定sql走某某索引啥的
hellonihao100 2011-11-29
  • 打赏
  • 举报
回复
我感觉还是要随着架构走 不要因为多表了 就去重新写SQL代码
半个鼠标 2011-11-28
  • 打赏
  • 举报
回复
框架移植性好,但是效率低
sql效率低,但是移植性不好!
一般还是要框架,但是一般不是用hibernate
  • 打赏
  • 举报
回复
你说的通过框架配置是指hibernate么?听说大项目都不用Hibernate。。甚至我听说好多公司都是用存储过程。。。
qing878 2011-11-28
  • 打赏
  • 举报
回复
问: 各位是怎么做的, 欢迎分享
qing878 2011-11-28
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 kouyisc 的回复:]

第一种,一般不会去写bean包含所有字段。。。一般采取多对一配置一个集合属性实现。。等于你说的map自己填充。。注意根据自己业务看是否延迟加载。。。
[/Quote]


这个是我说的第二种,用集合
jc8futao 2011-11-28
  • 打赏
  • 举报
回复
一般情况下,都是在特定的平台运行,需要考虑移植性吗??要考虑移植性再让客户花钱来做就行了,呵呵
kouyiSC 2011-11-28
  • 打赏
  • 举报
回复
第一种,一般不会去写bean包含所有字段。。。一般采取多对一配置一个集合属性实现。。等于你说的map自己填充。。注意根据自己业务看是否延迟加载。。。
qing878 2011-11-28
  • 打赏
  • 举报
回复
如果用第一种,请教下怎么写比较好, 写一个bean包含了tableA和tableB的所有字段么?

或者查出MAP自己填充?
qing878 2011-11-28
  • 打赏
  • 举报
回复
其实不只是hibernate,只要是ORMaping框架都差不多,不用局限在hibernate
随风醉舞 2011-11-28
  • 打赏
  • 举报
回复
看资料的多少,
我们使用 第一种!
kouyiSC 2011-11-28
  • 打赏
  • 举报
回复
引用
1. 如果你项目架构已经用了hibernate,那就采用第二种吧。。整个架构都定了。。就尽量跟着走。。不要再为了一个查询去写sql,整个项目那么多查询。。那不是都要改。。用hibernate的意义何在?
2. 如果没有用到hibernate,那采用第一种比较好。。单纯的sql的效率是比较高的。。只是写sql时注意避免一些全表扫描。。注意sql语句的执行效率。。

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧