Mybatis关联查询结果集对象嵌套的具体使用
在查询时经常出现一对多”的关系,所有会出现嵌套对象的情况,本文主要介绍了Mybatis关联查询结果集对象嵌套的具体使用,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
在查询时经常出现一对多”的关系,所有会出现嵌套对象的情况,Mybatis在resultMap提供了collection标签,本文适合有一定Mybatis基础的读者查阅
数据模型WeixinActivity2018User.java
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | public class WeixinActivity2018User implements Serializable{ /** serialVersionUID*/ private static final long serialVersionUID = -2740162776768956231L; private int id; private String nickname; //昵称 private String headurl; //头像 private String openid; //微信用户OpenId private String unionid; private String phone; //用户手机号 private int count; //积攒数 private String createtime; //创建时间 private String uptime; //更新时间 private List<WeixinActivity2018UserAssist> activity2018UserAssists; //点赞用户信息 |
数据模型WeixinActivity2018UserAssist.java
1 2 3 4 5 6 7 8 9 10 11 12 | public class WeixinActivity2018UserAssist implements Serializable{ /** serialVersionUID*/ private static final long serialVersionUID = -2740162776768956232L; private int aid; private int uid; private String nickname; private String headurl; private String openid; private String unionid; private String createtime; |
WeixinActivity2018UserMapper.xml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 | < resultMap id = "BaseResultMap" type = "com.lh.wx.model.WeixinActivity2018User" > < id column = "id" jdbcType = "INTEGER" property = "id" /> < result column = "openid" jdbcType = "VARCHAR" property = "openid" /> < result column = "unionid" jdbcType = "VARCHAR" property = "unionid" /> < result column = "phone" jdbcType = "VARCHAR" property = "phone" /> < result column = "nickname" jdbcType = "VARCHAR" property = "nickname" /> < result column = "headurl" jdbcType = "VARCHAR" property = "headurl" /> < result column = "count" jdbcType = "INTEGER" property = "count" /> < result column = "createtime" jdbcType = "DATE" property = "createtime" /> < result column = "uptime" jdbcType = "DATE" property = "uptime" /> < collection property = "activity2018UserAssists" ofType = "com.lh.wx.model.WeixinActivity2018UserAssist" > < id property = "aid" column = "aid" /> < result column = "uid" jdbcType = "INTEGER" property = "uid" /> < result column = "aopenid" jdbcType = "VARCHAR" property = "openid" /> < result column = "aunionid" jdbcType = "VARCHAR" property = "unionid" /> < result column = "anickname" jdbcType = "VARCHAR" property = "nickname" /> < result column = "aheadurl" jdbcType = "VARCHAR" property = "headurl" /> < result column = "acreatetime" jdbcType = "DATE" property = "createtime" /> </ collection > </ resultMap > < sql id = "Base_Column_List" > openid,unionid,phone,nickname,headurl,count,createtime,uptime </ sql > < insert id = "insertActivity2018User" useGeneratedKeys = "true" keyProperty = "id" parameterType = "com.lh.wx.model.WeixinActivity2018User" > insert into t_weixin_activity_2018_user (openid,unionid,phone,nickname,headurl,createtime,uptime) values ( #{openid,jdbcType=VARCHAR},#{unionid,jdbcType=VARCHAR},#{phone,jdbcType=VARCHAR}, #{nickname,jdbcType=VARCHAR}, #{headurl,jdbcType=VARCHAR},now(),now() ) </ insert > < select id = "selectTalCount" resultType = "java.lang.Integer" parameterType = "java.util.Map" > SELECT count(twau.id) from t_weixin_activity_2018_user twau < if test = "openid != '' and openid != null" > and twau.openid = #{openid} </ if > < if test = "id != 0 and id != null" > and twau.id = #{id} </ if > < if test = "phone != '' and phone != null" > and twau.phone = #{phone} </ if > </ select > < select id = "queryActivity2018User" parameterType = "java.util.Map" resultMap = "BaseResultMap" > SELECT twau.id,twau.openid, twau.unionid, twau.phone, twau.nickname, twau.headurl, twau.count,date_format( twau.createtime, '%Y-%m-%d %H:%m:%s') as createtime,date_format( twau.uptime, '%Y-%m-%d %H:%m:%s') as uptime ,twaua.aid,twaua.uid,twaua.openid as aopenid,twaua.unionid as aunionid,twaua.nickname as anickname,twaua.headurl as aheadurl,date_format(twaua.createtime, '%Y-%m-%d %H:%m:%s') as acreatetime , twaua.phone as aphone from t_weixin_activity_2018_user twau LEFT JOIN t_weixin_activity_2018_user_assist twaua on twau.id=twaua.uid where 1=1 < if test = "openid != '' and openid != null" > and twau.openid = #{openid} </ if > < if test = "id != 0 and id != null" > and twau.id = #{id} </ if > < if test = "phone != '' and phone != null" > and twau.phone = #{phone} </ if > < if test = "start != '' and start != null and start != 0" > order by tlb.createtime desc limit ${start}, ${number} </ if > </ select > |
到此这篇关于Mybatis关联查询结果集对象嵌套的具体使用的文章就介绍到这了
原文链接:https://blog.csdn.net/BuFanQi_Info/article/details/78973671