急求解答ibatis之resultMap!

刚进公司,学校期间没用过ibatis。今天领到任务,想着是挺简单的一个业务。但涉及到多表联查,用的框架是ibatis+struts1+ejb。这里需要写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与端口号 】这三个字段。
SQL语句我会写,但是想不通如何用DTO与数据库表一一对应?
用resultMap的话,是否得在其中一个表的DTO中加缺少的属性?
那么这个属性是普通的String类型可以吗?还是得一个集合?
谢谢了!急需解答!
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
展开
 我来答
百度网友3bbc73f
2012-06-01
知道答主
回答量:24
采纳率:0%
帮助的人:7.8万
展开全部
在resultMap的result 中定义嵌套查询,例如
<sqlMap namespace="User">
<typeAlias alias="user" type="com.ibatis.sample.User"/>
<typeAlias alias="address" type="com.ibatis.sample.Address"/>
<resultMap id="get-user-result" class="user">
<result property="id" column="id"/>
<result property="name" column="name"/>
<result property="sex" column="sex"/>
<result property="addresses" column="id"
select="User.getAddressByUserId"/>
</resultMap>
<select id="getUsers"
parameterClass="java.lang.String"
resultMap="get-user-result">
<![CDATA[
select
id,name,
sex
from t_user
where id = #id#
]]>
</select>
<select id="getAddressByUserId"
parameterClass="int"
resultClass="address">
<![CDATA[
select
address,
zipcode
from t_address
where user_id = #userid#
]]>
</select>
</sqlMap>
四月维夏dR9d1
2012-06-06
知道答主
回答量:4
采纳率:0%
帮助的人:5079
展开全部
你这个问题有2种解决不用急。
1、就是通过resultMap定义嵌套查询,这个你看一下ibatis的一对一、一对多等;
2、用sql join出所有的字段然后映射到一个DTO中,这种方案是绝大多数公司的做法,因为用sql本身效率要比1要高,但是不够抽象。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式