본문 바로가기

Java/mybatis

SqlBuilder 의 중요 메소드

 

 Method

 Description

 BEGIN() / RESET()

마이바티스 구문 빌더는 생성할 SQL을 스레드로컬에 저장한다. BEGIN() 메소드와 RESET() 메서드는 스레드로컬의 상태를 초기화하고 새로운 구문을 추가하기 위해 준비한다. BEGIN() 메소드는 새로운 구문을 추가할 때 호출하고 RESET() 메소드는 실행 중간에 구문을 초기화할 때 호출한다.

 SELECT(String)

SELECT를 시작하거나 추가한다. 한 번 이상 호출할 수 있고 파리미터는 SELECT 뒤에 추가한다. 파라미터는 컬럼과 컬럼 별칭의 목록이고 SELECT 메소드를 호출할 때마다 쉼표를 자동으로 붙여준다. 컬럼이 5개라면 컬럼별로 호출해도 되고 컬럼 5개를 모두 명시해서 한 번만 호출해도 된다.

 SELECT_DISTINCT(String)

 SELECT를 시작하거나 추가한다. SELECT() 메소드와 달리 'DISTINCT' 키워드를 추가한다. 그 외에는 SELECT() 메소드와 동일하다.

 FROM(String)

FROM절을 시작하거나 추가한다. 파라미터에는 테이블명이나 테이블의 별칭을 적어준다. 

 JOIN(String), INNER_JOIN(String), LEFT_OUTER_JOIN(String), RIGHT_OUTER_JOIN(String)

 조인 SQL을 만든다. 테이블명이나 테이블의 별칭을 적어주고 조인의 연결 고리가 되는 컬럼 조건을 적는다.

 WHERE(String)

 조회 조건을 추가하기 위해 WHERE를 사용한다. WHERE() 메소드를 호출하는 코드 중간에 AND()나 OR() 메소드를 호출할 수 있다. WHERE() 메소드를 여러 번 호출하면 메소드 호출 중간에 AND를 자동으로 추가한다.

 OR()

 조회 조건에서 조건 사이에 OR를 추가한다. 여러 번 호출할 수 있지만 생성되는 SQL을 보고 문법 에러를 확인하고 사용해야 한다.

 AND()

조회 조건에서 조건 사이에 AND를 추가한다. 여려 번 호출할 수 있지만 생성되는 SQL을 토대로 문법 에러를 확인하고 사용해야 한다. WHERE() 메소드를 사용해서 조회 조건을 추가하면 자동으로 AND를 붙여주기 때문에 필요한 경우에만 추가로 사용하면 된다.

 GROUP_BY(String)

 GROUP BY를 추가한다. GROUP BY() 메소드를 여러 번 호출하면 메소드 호출 중간에 쉼표를 자동으로 추가한다.

 HAVING(String)

HAVING절의 조건을 추가한다. HAVING() 메소드를 여러 번 호출하면 메소드 호출 중간에 AND를 자동으로 추가한다. OR로 조건을 추가하려면 OR()  메소드를 사용하면 된다. 

 ORDER_BY(String)

ORDER BY절을 추가한다. ORDER BY()메소드를 여러 번 호출하면 메소드 호출 중간에 쉼표를 자동으로 추가한다. 

 SQL() 

생성되는 SQL을 리턴하고 구문 빌더가 사용하던 스레드로컬의 상태를 리셋( BEGIN()이나 RESET() 메소드가 호출된 것 처럼 )한다. 이 메소드는 한 번만 호출할 수 있다. 

 DELETE_FROM(String)

 데이터를 삭제하고자 하는 테이블명을 파라미터로 적는다. 그러면 해당 테이블에 대해 삭제하는 delete 구문을 만든다. 삭제할 조건을 추가하기 위해 WHERE() 메소드를 호출한다.

 INSERT_INTO(String) 

 데이터를 입력하는 테이블명을 파라미터로 적는다. 값을 입력하는 컬럼과 값은 VALUES() 메소드를 사용해서 적어준다. 그러면 VALUES() 메소드로 지정한 컬럼에 값을 입력하는 insert 구문을 만든다. 

 SET(String) 

 UPDATE() 메소드와 함께 사용하며 update 구문에서 set 뒤에 지정하는 컬럼과 값의 목록을 나열한다.

 UPDATE(String) 

 데이터를 수정하는 테이블명을 파라미터로 적는다. 수정하는 대상 컬럼과 값은 SET() 메소드를 사용해서 나열한다. 수정할 조건을 추가하기 위해 WHERE() 메소드를 호출한다.

 VALUES(String, String) 

 INSERT() 메소드와 함께 사용한다. 입력하는 대상 컬럼과 값을 파라미터로 적어준다. 첫 번째 파라미터는 컬럼명이고, 두 번째 파라미터는 입력할 값이다.