急求解答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 展开
今天领到任务,想着是挺简单的一个业务。
但涉及到多表联查,用的框架是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 展开
2个回答
展开全部
在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>
<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>
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询