我是靠谱客的博主 文静荷花,最近开发中收集的这篇文章主要介绍Mybatis 一对多关联查询的两种方式:嵌套结果与嵌套查询嵌套结果Mapper XML配置Mapper XML配置,觉得挺不错的,现在分享给大家,希望可以做个参考。
概述
嵌套结果
Mapper 接口
List<TUser> selectUserJobs1();
返回结果会将查出来的表根据<id>合并
Mapper XML配置
<resultMap id="BaseResultMap" type="TUser">
<id column="id" property="id" />
<result column="userName" property="userName" />
<result column="realName" property="realName" />
<result column="sex" property="sex" />
<result column="mobile" property="mobile" />
<result column="email" property="email" />
<result column="note" property="note" />
</resultMap>
<resultMap id="userAndJobs1" extends="BaseResultMap" type="TUser">
<collection property="jobs"
ofType="com.enjoylearning.mybatis.entity.TJobHistory" >
<result column="comp_name" property="compName" jdbcType="VARCHAR" />
<result column="years" property="years" jdbcType="INTEGER" />
<result column="title" property="title" jdbcType="VARCHAR" />
</collection>
</resultMap>
<select id="selectUserJobs1" resultMap="userAndJobs1">
select
a.id,
a.userName,
a.realName,
a.sex,
a.mobile,
b.comp_name,
b.years,
b.title
from t_user a,
t_job_history b
where a.id = b.user_id
</select>
TUser 对象
@Data
public class TUser{
private Integer id;
private String userName;
private String realName;
private Byte sex;
private String mobile;
private String email;
private String note;
//一对多的体现
private List<TJobHistory> jobs ;
}
嵌套查询
Mapper 接口
List<TUser> selectUserJobs2();
Mapper XML配置
<resultMap id="userAndJobs2" extends="BaseResultMap" type="TUser">
<collection property="jobs" fetchType="lazy" column="id"
select="com.enjoylearning.mybatis.mapper.TJobHistoryMapper.selectByUserId" />
</resultMap>
<select id="selectUserJobs2" resultMap="userAndJobs2">
select
a.id,
a.userName,
a.realName,
a.sex,
a.mobile
from t_user a
</select>
这种方式会把所有的 TUser 查出来,t_user 有多少条,就会查出多少条
最后
以上就是文静荷花为你收集整理的Mybatis 一对多关联查询的两种方式:嵌套结果与嵌套查询嵌套结果Mapper XML配置Mapper XML配置的全部内容,希望文章能够帮你解决Mybatis 一对多关联查询的两种方式:嵌套结果与嵌套查询嵌套结果Mapper XML配置Mapper XML配置所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复