您好,登錄后才能下訂單哦!
這篇文章運用簡單易懂的例子給大家介紹mybatis實現like查詢的方法,代碼非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。
MyBatis 是支持普通 SQL查詢,存儲過程和高級映射的優秀持久層框架。MyBatis 消除了幾乎所有的JDBC代碼和參數的手工設置以及結果集的檢索。MyBatis 最強大的特性之一就是它的動態語句功能。
mybatis 自動生成的 like 查詢,需要自己給參數添加 %,因為 mybatis 不會自動添加%號的,這是 mybatis 為了提供最大的靈活性決定的,因為 mybatis 并不知道我是要在哪一個位置添加 %。
從此我們可以舉一反三,凡是類似這類的問題,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查詢的方法就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。