909422229_Jeesite多表联合列表分页实现

技术交流群:958923746,有学习视频,文档等。

dao.xml中的代码
  <select id="selectByUserId" resultType="com.yckj.modules.ts_notices.entity.YsNoticeVo">
     select
     * --//这里可以直接写*号。比较省事,不过数据比较多,建议针对业务返回数据
    from ys_notice_manlist n
    JOIN ys_notice a ON a.id = n.notice_id
        where n.user_id =#{userId}
    <choose>
      <when test="page !=null and page.orderBy != null and page.orderBy != ''">
        ORDER BY ${page.orderBy}
      </when>
      <otherwise>
        order by notice_time DESC
      </otherwise>
    </choose>
  </select>
  
  dao层的代码
  List<YsNoticeVo> selectByUserId(@Param("userId") String userId, @Param("page") Page<YsNoticeVo> page);

service的代码
 public Page<YsNoticeVo> selectByUserId(Page<YsNoticeVo> page){
     User user = UserUtils.getNewUser();
     String userId = user.getId();
     page.setList(dao.selectByUserId(userId,page));
     return page;
  }

controller的代码

  public Map<String, Object> selectNotice(Integer pageNo, Integer pageSize) {
      //根据当前用户id查询出   他的所有通知
    //List list = ysNoticeService.selectByUserId();
    if(Objects.isNull(pageNo)){
      pageNo = 1;
    }
    if(Objects.isNull(pageSize)){
      pageSize = Integer.valueOf(Global.getConfig("page.pageSize"));
    }
      Page<YsNoticeVo> page = ysNoticeService.selectByUserId(new Page<>(pageNo,pageSize));
    Map<String, Object> map = new HashMap<>();
    map.put("success","true");
    map.put("data",page);
    return map;
  }

上面是第一种:第二种可以使用Jeesite的注解,在entity中进行配置,做表关联。

不过相对而言不怎么便捷。因为如果这个表跟很多表进行关联的话,实体类中就需要写更多的代码。

相对来说不如在Mapper文件中直接写SQL查询。每一种都有各自的优点。

第一种:可以自定义写自己的sql,每次写功能需要自己写mapper  sql。

第二种:不需要写sql,在entity中定义好,在查询列表的时候,可以设置属性自定进行查询。

技术交流群:958923746,有学习视频,文档等。

添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

75888丶

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值