首頁  >  文章  >  Java  >  mybatis 的 like 查詢

mybatis 的 like 查詢

(*-*)浩
(*-*)浩轉載
2019-11-01 15:48:413535瀏覽

mybatis 自動產生的like 查詢,需要自己給參數添加%,因為mybatis 不會自動添加%號的,這是mybatis 為了提供最大的靈活性決定的,因為mybatis 並不知道我是要在哪一個位置添加%。

mybatis 的 like 查詢

從此我們可以舉一反三,凡是類似這類的問題,mybatis都不會自動的給我們添加我們期望的符號,因為它不知道該在哪裡添加,這種添加反而變成了畫蛇添足。

    public PageInfo<StationCardPreBo> findStationCardPres(
            StationCardPreQueryBo stationCardPreQueryBo, PageBo pageBo) {
        StationCardPreQuery query = new StationCardPreQuery();
        Criteria criteria = query.createCriteria();
        if (stationCardPreQueryBo.getId() != null) {
            criteria.andIdEqualTo(stationCardPreQueryBo.getId());
        }
        if (stationCardPreQueryBo.getStationNo() != null) {
            criteria.andStationNoLike("%" + stationCardPreQueryBo.getStationNo() + "%");
        }
        if (stationCardPreQueryBo.getCardNo() != null) {
            criteria.andCardNoLike("%" + stationCardPreQueryBo.getCardNo()+ "%");
        }

        // 设置分页参数
        PageHelper.startPage(pageBo.getPageNum(), pageBo.getPageSize());
        List<StationCardPre> list = stationCardPreMapper.selectByExample(query);

        PageInfo<StationCardPre> tempPageInfo = new PageInfo<>(list);

        PageInfo<StationCardPreBo> resultPage = new PageInfo<StationCardPreBo>();
        BeanMapper.copy(tempPageInfo, resultPage);

        if (CollectionUtils.isNotEmpty(list)) {
            resultPage
                    .setList(BeanMapper.mapList(list, StationCardPreBo.class));
        }

        return resultPage;
    }

退一步講,如果你不知道mybatis最後給我們拼接的sql 語句是什麼的話,你可以印出來mysql 最後給我們拼接完的語句,或者是我們可以在mysql 的拼接處打上斷點,這樣我們就可以查看我們的sql語句了,從這裡分析問題的最終原因。

mybatis sql 建構位置:

mybatis 的 like 查詢

以上是mybatis 的 like 查詢的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:csdn.net。如有侵權,請聯絡admin@php.cn刪除