日期:2014-05-17  浏览次数:20686 次

急求解答ibatis之resultMap之多表联查与DTO!
刚进公司,学校期间没用过ibatis。
今天领到任务,想着是挺简单的一个业务。
但涉及到多表联查,用的框架是ibatis+struts1+ejb。
这里需要写DTO来与数据库表中字段一一对应。
那多表联查我的DTO怎么设计啊。一个表一个相应的DTO,多个表联合查询出的字段,一个DTO里面肯定没有,怎么解决?
比如:
视频信息表:
vedioID vedioInfo ipAndGallery(视频ID,视频信息,ip与端口号)
人员分组表:
personGroupID personID personGroup(分组ID,人员ID,分组信息)
权限控制表(中间表):
IMpower vedioID personGroupID 权限ID、视频ID、分组ID)
需要在jsp页面展示:
【分组信息,视频信息、ip与端口号 】这三个字段。
select a.personGroup,b.vedioInfo,b.ipAndGallery 
from jk_persongroup a,jk_vedio b,jk_impower c
where a.personGroupID=c.personGroupID AND b.vedioID=c.vedioID
疑惑:
SQL语句我会写,但是想不通如何用DTO与数据库表一一对应?
用resultMap的话,是否得在其中一个表的DTO中加缺少的属性?
那么这个属性是普通的String类型可以吗?还是得一个集合?
谢谢了!急需解答!

------解决方案--------------------
疑惑:
SQL语句我会写,但是想不通如何用DTO与数据库表一一对应?
用resultMap的话,是否得在其中一个表的DTO中加缺少的属性?
那么这个属性是普通的String类型可以吗?还是得一个集合?
谢谢了!急需解答!
像这种多表联合查询的最好是在建一个domain专门用来查询这样你sql就可以返回这个domain.
------解决方案--------------------
你把返回的字段映射到一个javabean里面,或者直接返回一个map,都可以。

------解决方案--------------------
以一张表为主表 别的表的字段as 主表的属性。 这样就可以用 主表.属性取值。主表属性要与从表字段类型一致
------解决方案--------------------
2楼的方法可以....