본문 바로가기

학원/복기

[Mybatis] cache 엘리먼트

cache 엘리먼트

 

cache는 SELECT 명령의 검색결과(Java 객체)를 임시 메모리(Cache Memory)에 저장하여 빠른 검색결과를 제공하기 위한 엘리먼트 이다.

 

chche를 활성화하기 위해서는 SQL 매핑 파일에 한줄을 추가하면 된다.

<cache/>

 

cache 엘리먼트를 사용하면 가독성이 증가한다는 장점이 있다.

select 결과를 임시 메모리에 저장해놓고, 재실행하면 DB 서버에 접속해 정보를 가져오는 것이 아니라 임시 메모리에서 정보를 가져온다.

 

INSERT, UPDATE, DELETE 명령이 실행되면 임시 메모리에 저장된 검색결과는 자동으로 초기화된다. 

검색결과를 저장하는 객체는 반드시 객체 직렬화 클래스로 작성해야한다. 

 

XML 기반의 매퍼 파일에서 cache 엘리먼트를 사용한 경우 SELECT 명령에 대한 검색결과로 제공될 객체의 클래스는 반드시 객체 직렬화 클래스로 선언해야 한다.

 

객체 직렬화 클래스는 객체 단위로 입력 및 출력 처리하기 위한 클래스이며, Serializable 인터페이스를 상속받아 작성한다.
또한 객체 직렬화 클래스는 serialVersionUID 이름의 static final 필드를 선언하는 것을 권장한다.

 

public class MyComment1 implements Serializable {
	private static final long serialVersionUID = -7534009978055893003L;

	//...
    	//...

}