Mybatis は like クエリを自動的に生成します。mybatis は自動的に % 記号を追加しないため、パラメータに % を自分で追加する必要があります。これは、mybatis がどのクエリを使用するかわからないため、最大限の柔軟性を提供するために mybatis によって決定されます。参加したい。位置に % を追加します。
これ以降、1 つの例から推論を導き出すことができます。このような問題の場合、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 のようなクエリの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。