Mybatis 一对多

往往在一个展示页面(以下统称类),显示一列数据,其重要包含另一个类的某个字段,这个时候我们就要用到这个技能啦,往往分为以下几个步骤,
第一步:在展示页面对应的实体类里加入 另一个实体类(这里做说明,比如要在A类里展示B类的某个字段,如果A的某条数据是对应B的多个那就定义成B类list集合List b = new ArryList();,如果对应的是单条数据,就定义成对象 private B b = new B()?,可能有些绕,慢慢体会
这是在A类里定义了B类的属性,同时添加get set方法,此处省略

protected MsDocumentsInfo msDocumentsInfo = new MsDocumentsInfo();

第二步:在A类的map.xml文件中的resultMap标签中定义,这个字段就是我要在A类列表中展示的B类的一个字段,column不是数据库字段值,而是下面第三步中连接查询,展示的B类字段的别名,这里的property 属性,就是你在A类中定义的对象
(这个一定要对应上没否则前台报错无getter方法,后台报错映射错误)

<collection property="msDocumentsInfo" ofType="com.quanyu.ms.persistence.model.MsDocumentsInfo">
			<result property="deliveryNo" column="delivery_no"/>
</collection>

第三步:写sql,连接查询

SELECT 
		a.*,b.delivery_no  delivery_no 
		FROM    ms_input_stment a
		LEFT  JOIN ms_documents_info b  ON  a.cover_stment_no = b.storage_no

第四步:页面取值,这里使用的是grid,同样分两种情况,与第一步对应,如果你当时定义的这个类是List那么就这么写

,formatter : function(value, row, index) {
       return row.msDocumentsInfo[0].deliveryNo;
       }

如果你定义的是B b= new B(); 那么你就这么写

,formatter : function(value, row, index) {
       return row.msDocumentsInfo.deliveryNo;
       }

这就大功告成了

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值