[Spring Boot] Mybatis Plus 3. X 조건 조회

4051 단어 [구조 설계]#
[머리말]
앞에서 블 로그 '[Spring Boot] Mybatis Plus 2. X 조건 조회' 를 쓴 적 이 있 습 니 다. 우 리 는 Mybatis Plus 2. X 와 3. X 가 조 회 를 실현 하 는 방식 이 다르다 는 것 을 알 고 있 습 니 다. 본 블 로 그 는 3. X 버 전의 각종 조회 방법의 응용 을 정리 할 것 입 니 다.
【 실례 】
다음은 문장 표 의 조 회 를 예 로 들 어 몇 가지 서로 다른 조회 방법의 사용 을 보 여 준다.
1. 문장 항목 번호 에 따라 해당 항목 아래 의 모든 문장 조회
public List
searchByCatId(Integer catId) { QueryWrapper
queryWrapper = new QueryWrapper<>(); queryWrapper.lambda().eq(Article::getCatId,catId); List
articles = articleMapper.selectList(queryWrapper); articles.forEach(x-> System.out.println(" :" + x.getCatId() + ", :" + x.getTitle())); return articles; }

여기 서 사용 하 는 것 은 Query Wrapper 구조 조회 조건 입 니 다. eq 를 사용 하여 해당 항목 의 번호 조건 을 실현 하고 selectList 방법 은 모든 조건 을 만족 시 키 는 글 집합 을 되 돌려 줍 니 다.
2. 글 의 주 키 id 를 통 해 특정 글 조회
public Article searchOne(Integer id) {
    LambdaQueryWrapper
queryWrapper = new LambdaQueryWrapper<>(); queryWrapper.eq(Article::getId,id); Article article = articleMapper.selectOne(queryWrapper); return article; }

상기 코드 는 LambdaQuery Wrapper 구조 조회 조건 을 직접 사용 하고 eq 를 사용 하여 해당 번호 조 회 를 실현 하 며 selectOne 방법 은 특정한 글 기록 을 되 돌려 줍 니 다.
selectOne 조 회 를 사용 할 때 주의해 야 할 것 은 결 과 는 한 가지 만 있어 야 하고 여러 가지 경우 에 오류 가 발생 할 수 있다 는 것 이다.
3. 글 의 키워드 에 따라 조건 에 맞 는 모든 글 을 모호 하 게 조회
public List
searchMore(String keywords) { LambdaQueryWrapper
queryWrapper = new LambdaQueryWrapper<>(); queryWrapper.like(Article::getKeywords,keywords); List
articles = articleMapper.selectList(queryWrapper); articles.forEach(x-> System.out.println(" :" + x.getKeywords() + ", :" + x.getTitle())); return articles; }

상기 코드 는 LambdaQuery Wrapper 구조 조회 조건 을 사용 하고 like 를 사용 하여 전후 모호 조건 을 실현 하 며 selectList 방법 은 모든 조건 에 부합 되 는 글 결 과 를 되 돌려 줍 니 다.
4. 지도 구조 조회 조건 을 사용 하여 조회 문장 코드 에 따라 정확하게 조회
public List
searchMoreByMap(String code) { Map queryMap = new HashMap<>(); queryMap.put("code",code); List
articles = articleMapper.selectByMap(queryMap); articles.forEach(x-> System.out.println(" :" + x.getCode() + ", :" + x.getTitle())); return articles; }

저 희 는 map 구조 조건 을 사용 할 수 있 습 니 다. key 에 대응 하 는 데이터베이스 열 이름 입 니 다. value 는 데이터베이스 필드 의 값 에 대응 합 니 다. 이 조회 조건 은 selectMap 방법 이 정확 한 조 회 를 실현 하 는 것 과 같 습 니 다.
5. 삭제 되 지 않 은 모든 글 을 페이지 별로 조회
public PageResult
searchArticlePage(Integer page, Integer size) { IPage
articleIPage = new Page<>(page,size); QueryWrapper
articleQueryWrapper = new QueryWrapper<>(); articleQueryWrapper.lambda().eq(Article::getIsDeleted,0); IPage
iPage = articleMapper.selectPage(articleIPage, articleQueryWrapper); PageResult
pageResult = new PageResult<>(); pageResult.setItems(iPage.getRecords()); pageResult.setTotal(iPage.getTotal()); System.out.println(" :" + pageResult.getTotal()); return pageResult; }

IPage 대상 을 구성 하여 현재 페이지 와 각 페이지 의 수량, Query Wrapper 구조 조회 조건, selectPage 방법 으로 페이지 별 조 회 를 실현 합 니 다.
페이지 를 나 눌 때 문제 가 발생 했 습 니 다. 되 돌아 오 는 Total 수량 은 0 입 니 다. 해결 방안 은 pagehelper 를 참조 하면 이 인용 을 제거 하고 my batis - plus 페이지 플러그 인 설정 을 추가 하 는 것 입 니 다.
코드 는 다음 과 같 습 니 다:
@Configuration
public class MybatisPlusConfig {
     /**
     *   mybatis-plus    
     */
    @Bean
    public PaginationInterceptor paginationInterceptor() {
        PaginationInterceptor page = new PaginationInterceptor();
        page.setDialectType("mysql");
        return page;
    } 
}

상기 코드 는 이전에 통 합 된 3. X 버 전의 생 성 코드 설정 프로젝트 에서 주소: Mybatis Plus 3. X 조회 응용

좋은 웹페이지 즐겨찾기