jeecgboot マルチテーブル結合クエリ ページネーション

説明します:

Jeecgboot は mybatis plus を使用し、条件コンストラクターで QueryWrapper オブジェクトを使用してクエリを完成させます. このオブジェクトの getCustomSqlSegment() メソッドはカスタム SQL を取得するためのものです: そこで、QueryWrapper を使用してカスタム SQL を構築し、マッパーでカスタム SQL を取得します SQL を定義し
ここに画像の説明を挿入
ます結合テーブルクエリステートメントの後にスプライスされます。

Mybatis とドキュメントのアドレス: mybatis と querywrapper


コード プロセス:

私の要件:実行された結果データへのopenidクエリによると、結果データはジョイントテーブルクエリによって取得する必要があります:
フロントエンド[小さなプログラム]:

wx.request({
    
    
      url: getPayResultListByOpenId,
      data: {
    
    
        pageNo: this.data.page,
        pageSize: this.data.limit,
        openId: wx.getStorageSync('openid')
      },
      success: (res) => {
    
    
       },
      fail: (res) => {
    
    
        console.log(res);
      }
    })

コントローラ:

 @RequestMapping(value = "getPayResultListByOpenId")
    @ResponseBody
    public Result<?> queryPageList(PayTestresult payTestresult,
                                   @RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo,
                                   @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize,
                                   HttpServletRequest req) {
    
    
        QueryWrapper<PayTestresult> queryWrapper = QueryGenerator.initQueryWrapper(payTestresult, req.getParameterMap());
        Page<PayTestresult> page = new Page<PayTestresult>(pageNo, pageSize);
        IPage<PayTestresult> pageList = payTestresultService.pageList(page, queryWrapper);
        return Result.OK(pageList);
    }

サービス,サービス実装:


IPage<PayTestresult> pageList(Page<PayTestresult> page, QueryWrapper<PayTestresult> queryWrapper);


@Overridepublic IPage<PayTestresult> pageList(Page<PayTestresult> page, QueryWrapper<PayTestresult> queryWrapper) {
    
    
        return testresultMapper.getPageList(page, queryWrapper);
}

マッパーレイヤー:

IPage<PayTestresult> getPageList(Page page, @Param(MybatisPlusConst.QUERYWRAPPER) Wrapper<PayTestresult> queryWrapper);

MybatisPlusConst はカスタム定数クラスで、QUERYWRAPPER はカスタム フィールドです。

public class MybatisPlusConst {
    
    
    public static final String QUERYWRAPPER = "ew";
    public static final String SQL = "sql";
}

マッパー レイヤーの SQL ステートメント: ${ew.customSqlSegment} を使用してカスタム SQL ステートメントを取得し、スプライシングします。

<select id="getPageList" resultType="org.jeecg.modules.paytest.entity.PayTestresult">
        SELECT b.descp, b.que_count, b.read_num, b.pic AS picPath, a.*
        FROM pay_testresult a
        LEFT JOIN pay_test b ON a.test_id = b.id
        ${ew.customSqlSegment}
    </select>

結果:

印刷された SQL ステートメントは次のとおりです。
ここに画像の説明を挿入

おすすめ

転載: blog.csdn.net/weixin_44934104/article/details/126618189