mybatis进行多表查询时,建视图?关系映射?还是直接返回Map?困扰了我N久,诚心求教

varbobo 2011-10-17 10:06:52
比如: 学生表Student 班级表Clazz 一对多关系
查询学生和班级 select * from student s left join clazz c on s.clazz_id = c.clazz.id
返回List列表在前台

解决方法:
1. 使用关系映射,Clazz作为Student类中的一个属性,全用mybatis的关联映射<association property="clazz"....
查询返回类型List<Student>
public Student {
private Integer id;
....
private Clazz clazz;
}

2. 建立视图,并创建此视图的实体类,查询返回类型List<StudentClazzView>
public StudentClazzView {
private Integer id;
private String stuName;
private String clazzName;
......
}

3. 不建实体类,直接返回Map类型,字段作为Map的key,返回类型List<Map>


以上三种方法大家都使用哪一种啊,第一种有点类似Hibernate,第二种又感觉繁琐,第三种就是jdbc了没什么特别的
这几中方式哪一种性能更好呢,此问题困扰了我好久,看了n多项目的源码也没找到答案,望高手赐教啊
...全文
1431 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
ocaicai 2011-12-01
  • 打赏
  • 举报
回复
你结分得太早了,好吧,我承认我来晚了!
根据我使用的经验来看,我首先觉得第一种优雅,其次我觉得第一种方式更符合逻辑而且更灵活。
varbobo 2011-10-19
  • 打赏
  • 举报
回复
好吧,我结贴了,看来还是第二种方式比较好,或者不建视图而直接根据返回的字段建一个新的model类,感谢fuwenhai的回答
varbobo 2011-10-18
  • 打赏
  • 举报
回复
自己顶一下,各位路过的大哥大姐说下自己的意见啊
varbobo 2011-10-17
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 fuwenhai 的回复:]
我比较喜欢第二种
逻辑简单,倾向于Java的MVC模型
[/Quote]

是啊,我们公司原来也是用第二种,而且用了ibatis的代码自动生成,感觉还不错,只是没有第一种优雅,我想知道第一种方式性能如何啊
luyun2011 2011-10-17
  • 打赏
  • 举报
回复
我比较喜欢第二种
逻辑简单,倾向于Java的MVC模型
varbobo 2011-10-17
  • 打赏
  • 举报
回复
好吧,我承认我不该说是mybatis,其实jdbc也是一样的问题吧,各位大虾说说自己的看法啊

67,513

社区成员

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

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