@Data
public class User{
private Long id;
private String name;
}
@Data
public class Score{
private Long id;
private Integer score;
private Long subjectId;
private Long userId;
}
<resultMap id="userResult" type="User"> </resultMap>
<resultMap type="User" id="userExt">
<result property="id" column="id"/>
<result property="name" column="name"/>
<collection property="scoreList" column="user_id" javaType="List" ofType="Score" >
<result property="userId" column="user_id"/>
<result property="score" column="score"/>
<result property="subjectId" column="subject_id"/>
</collection >
</resultMap>
<sql id="commonUserColumns">id,name</sql>
// resultMap
<select id="findUserById" resultMap="userResult">
select age,name from t_user user where user.id = #{userId}
</select>
// resultType
<select id="findUserById" resultType="User">
select age,name from t_user user where user.id = #{userId}
</select>
// foreach
<select id="findUserByUserList" resultType="User">
select age,name from t_user user where user.id in
<foreach item="user" index="index" collection="userList" open="(" separator="," close=")">
#{user.id}
</foreach>
</select>
// if
<select id="findUserByName" resultType="User">
select age,name from t_user user
<if test="null != userName and userName != "" ">
where user.name = #{userName}
</if>
</select>
// include
<select id="findUserByName" resultType="User">
select <include refid="commonUserColumns" />
from t_user user
</select>
// 一对多
<select id="findUserByName" resultMap="userExt">
select id,name,socre,subject_id
from t_user user left join t_score score on user.id = score.user_id
</select>
Mybatis 各种标签使用
于 2021-07-23 15:53:23 首次发布
本文介绍了如何在Spring Boot项目中使用MyBatis进行用户与分数关联查询,展示了 resultMap、resultType、foreach、if、include和一对多关联映射的实践。重点讲解了如何通过SQL和数据映射实现动态查询和复杂关系数据获取。

被折叠的 条评论
为什么被折叠?



