Springboot评论回复功能:利用mybatis-plus 中的page分页已有的list

该文描述了一个使用MyBatis进行数据库操作,获取文章评论及其回复并进行分页显示的实现过程。首先,通过文章ID查询评论,再根据评论ID获取回复,然后将回复数据嵌套在评论数据中,最后利用自定义的分页工具进行分页处理。
摘要由CSDN通过智能技术生成

问题:在做文章评论回复模块时,需要将文章下的所有评论以及评论下的回复数据都查出来,把对应的回复数据都显示在对应的评论下方,然后对评论数据进行分页。


思路:

1.根据文章id去评论表中查询该文章下的所有评论,然后再根据每个评论id去回复表中查询该评论下的所有回复内容,查询的数据均按照更新时间进行排序。

2.用list去封装评论信息,然后循环遍历集合,在用list封装该改评论下所有回复数据,最后在将回复list封装到评论list中,这样我就得到了包含所有回复数据的评论集合。

3.最后一步就是编写分页类,调用即可。
话不多说,上代码:

数据库信息:
评论表:

 回复表:

 实体类:
 

@Data
public class KbmsCommentAndReplyuserVo implements Serializable {
    /**
     * 评论表id
     */
    @TableId
    private Integer commentId;

    /**
     * 用户(评论者)id
     */
    private Integer userId;

    /**
     * 文章(资源)id
     */
    private Integer issueId;

    /**
     * 用户名字
     */
    private String username;

    /**
     * 用户头像
     */
    private String avatar;

    /**
     * 评论内容
     */
    private String content;

    /**
     * 标识字段, 0 文章    1 资源
     */
    private Byte label;

    /**
     * 评论是否回复
     */
    private String commentisreply;

    /**
     * 回复集合
     */
    private List<KbmsReplyuser>  kbmsReplyusers;

    /**
     * 记录创建时间
     * */
     private Date createtime;
    private Date updatetime;

    @TableField(exist = false)
    private static final long serialVersionUID = 1L;
}

mapper:

@Repository
public interface CommentAndReplyuserMapper extends BaseMapper<KbmsCommentAndReplyuserVo
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
实现分页功能,可以使用Spring BootMyBatis-Plus插件提供的分页支持。 1. 引入MyBatis-Plus依赖 在pom.xml文件添加MyBatis-Plus依赖: ```xml <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>3.4.1</version> </dependency> ``` 2. 配置分页插件 在Spring Boot的配置文件application.properties或application.yml添加以下配置: ```yaml mybatis-plus: configuration: # 开启分页插件 map-underscore-to-camel-case: true # 分页插件 page: helper-dialect: mysql reasonable: true support-methods-arguments: true auto-mapping: true ``` 3. 编写Mapper接口 在Mapper接口添加对应的方法,使用MyBatis-Plus提供的分页参数Page实现分页功能。 ```java public interface UserMapper extends BaseMapper<User> { /** * 分页查询用户列表 * @param page 分页参数 * @param name 查询条件:用户名 * @return 用户列表 */ IPage<User> selectUserList(Page<User> page, @Param("name") String name); } ``` 4. 编写Service实现类 在Service实现类调用Mapper接口的方法,获取分页数据。 ```java @Service public class UserServiceImpl implements UserService { @Autowired private UserMapper userMapper; @Override public IPage<User> getUserList(Page<User> page, String name) { return userMapper.selectUserList(page, name); } } ``` 5. 编写Controller类 在Controller类,通过@RequestParam注解获取分页参数,调用Service实现类的方法,将分页结果返回给前端。 ```java @RestController @RequestMapping("/user") public class UserController { @Autowired private UserService userService; @GetMapping("/list") public IPage<User> getUserList(@RequestParam(defaultValue = "1") Integer pageNum, @RequestParam(defaultValue = "10") Integer pageSize, String name) { Page<User> page = new Page<>(pageNum, pageSize); return userService.getUserList(page, name); } } ``` 通过以上步骤,即可实现基于Spring BootMyBatis-Plus插件的分页功能
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值