效果预览
1.1第一步 建立表结构
文章表
评论表
用户表
1.2 第二步
因为我们得出的查询结果有两个集合的,创建Vo表
@Data
@AllArgsConstructor
@NoArgsConstructor
//这里继承了user 所以省略写
public class UserListArticleVo extends User{
/**
* 文章集合
*/
private List<Article> articleList;
@Data
public class ArticleListComment extends Article{
private List<Comment> commentList; }
Mapper接口
这步很重点 resultMap
> <resultMap type="com.blog.entity.UserListArticleVo" id="MapListVo">
>
> <!--user-->
> <id property="userId" column="user_id" jdbcType="VARCHAR"/>
> <result property="userName" column="user_name" jdbcType="VARCHAR"/>
> <result property="passWord" column="pass_word" jdbcType="VARCHAR"/>
> <result property="userImg" column="user_img" jdbcType="VARCHAR"/>
> <result property="phone" column="phone" jdbcType="VARCHAR"/>
> <result property="email" column="email" jdbcType="VARCHAR"/>
> <result property="createTime" column="create_time" jdbcType="TIMESTAMP"/>
> <result property="updateTime" column="update_time" jdbcType="TIMESTAMP"/>
>
> articleList对应的是 UserListArticleVo 的文章集合字段
> <collection property="articleList" ofType="com.blog.entity.Article" resultMap="ArticleListCommentMap"/>
>
> </resultMap>
<resultMap type="com.blog.entity.ArticleListComment" id="ArticleListCommentMap">
> <id property="articleId" column="article_id" jdbcType="INTEGER"/>
> <result property="articleTitle" column="article_title" jdbcType="VARCHAR"/>
> <result property="articleContent" column="article_content" jdbcType="VARCHAR"/>
> <result property="userId" column="user_id" jdbcType="INTEGER"/>
> <result property="createTime" column="create_time" jdbcType="TIMESTAMP"/>
> <result property="updateTime" column="update_time" jdbcType="TIMESTAMP"/>
> <collection property="commentList" ofType="com.blog.entity.Comment"
> resultMap="com.blog.dao.CommentDao.CommentMap"/>
> </resultMap>