ibatis按照id查询几个表的信息,如果将几个表的信息都放在一个对象中,如返回memberInfo对象,这个对象中包

ibatis按照id查询几个表的信息,如果将几个表的信息都放在一个对象中,如返回memberInfo对象,这个对象中包含一个会员基本信息,一个会员附加信息,还有一个Lis... ibatis按照id查询几个表的信息,如果将几个表的信息都放在一个对象中,如返回memberInfo对象,这个对象中包含一个会员基本信息,一个会员附加信息,还有一个List类型的会员卡信息(可能多张卡),怎么处理呢?或者有什么更好的方法来处理返回的对象中含有的List呢,求高手解答,谢谢
是不是可以在类中定义一个list<会员卡>数组呢
展开
 我来答
tenderlitch
2013-05-21 · TA获得超过174个赞
知道小有建树答主
回答量:72
采纳率:0%
帮助的人:117万
展开全部
可以使用关联查询

resultMap中这样写
<resultMap id="xxxid" class="packagename.memberInfo">
<!-- 此处省略其他正常存放的属性-->
<result column="memberID" property="cardList" select="Card.findByMenberID"/>

</resultMap>

然后在查询卡的map中添加一个这样的<select/>
<select id="findByMenberID" paramterClass="java.lang.Long" resultMap="card">
select colA,colB.... from TABLE_CARD where menber_ID=#value:DECIMAL#

</select>

这里有几个假设,
1.存放会员的表中有一列menberID,这个是主键,外键是存放CARD的表中的menber_id(不一定数据库层面有主外建关系,只要有这个逻辑层面的关联关系就ok)
2.查询CARD表的map放在名字为Card的命名空间下
3.menberInfo中存放card的List属性名为cardList

将我假设的名称改为你实际的名称就ok。
PS:代码是纯手写的,可能有拼写错误啥的,能看懂就好,别复制粘贴。
更多追问追答
追问
嗯,谢谢!那我需要写几个resultMap呢?service层需要返回memberInfo这个对象,那我调用dao层的时候要在dao层写几个查询方法呢?
追答
一个DAO方法,findByMenberID这个是被动调用的,resultMap中那样子写的话,DAO查询出menberInfo对象后会根据关联条件,每个menber_id都查出一个对应的List,这个过程是自动的,当然,有可能有缓存存在,你使用List的时候才会去真正查。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式