mybatis가 자동으로 생성한 like 쿼리에서는 매개변수에 %를 직접 추가해야 합니다. 왜냐하면 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의 마지막 스플라이스 문을 인쇄하거나 다음에 중단점을 넣을 수 있습니다. 여기에서 SQL 문을 보고 문제의 최종 원인을 분석할 수 있습니다.
mybatis sql 구축 위치:
위 내용은 mybatis와 같은 쿼리의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!