공부/MYBATIS(25)
-
207. 플러그인 (plugins)
마이바티스는 매핑된 구문이 실행되고 있는 특정 시점에 호출을 가로채는 것을 허용해. 기본적으로, 마이바티스는 다음과 같은 메소드 호출을 가로채기 위한 플러그인을 허용하지.Executor (update, query, flushStatements, commit, rollback, getTransaction, close, isClosed)ParameterHandler (getParameterObject, setParameters)ResultSetHandler (handleResultSets, handleOutputParameters)StatementHandler (prepare, parameterize, batch, update, query)이들 클래스 메소드들의 세부사항은 각각의 전체 메소드 특징들을 살펴봄..
2012.04.19 -
206. 오브젝트팩토리 (objectFactory)
마이바티스가 result 객체의 인스턴스를 새로 생성할 때마다, 인스턴스 객체를 생성하기 위해 오브젝트팩토리를 사용해. 기본 오브젝트팩토리는 기본생성자나, 파라미터가 있는 - 파라미터 매핑이 존재한다면- 생성자를 가진 타겟 클래스를 인스터스화하는 것보다 조금 더 많은 것을 하지. 오브젝트팩토리의 기본 행동을 오버라이드하고 싶다면, 새로 만들 수 있어. 예를 들면,// ExampleObjectFactory.java public class ExampleObjectFactory extends DefaultObjectFactory { public Object create(Class type) { return super.create(type); } public Object create(Class type, Lis..
2012.04.19 -
205. 타입핸들러 (typeHandler)
마이바티스가 파라미터를 PreparedStatement에 세팅하거나, ResultSet으로부터 값을 추적할 때마다, 타입핸들러는 알맞은 자바 타입의 값을 추적하기 위해 씌여. 다음 테이블은 타입핸들러 기본값을 보여주지 타입핸들러 자바타입JDBC 타입BooleanTypeHandlerjava.lang.Boolean, booleanBOOLEAN과 호환되는 모든것ByteTypeHandlerjava.lang.Byte, byteNUMERIC 이나 BYTE와 호환되는 모든것ShortTypeHandlerjava.lang.Short, shortNUMERIC 이나 SHORT INTEGER 와 호환되는 모든것IntegerTypeHandlerjava.lang.Integer, intNUMERIC 이나 INTEGER와 호환되는 ..
2012.04.19 -
204. 타입알리아스(typeAlias)
타입 알리아스는 자바타입에 대한 간단한 짧은 이름이다. XML 설정에만 관계되고, 클래스풀네임을 타이핑하는 수고를 덜어주기 위해 존재한다. 위 예제에서 Blog 는 domain.blog.Blog가 쓰일 수 있는 곳 어디라도 쓰일 수 잇다. 또한 마이바티스가 찾을 빈이 있는 패키지를 기술할 수 있다. domain.blog에서 발견되는 빈들은, 아무런 어노테이션이 없다면, 소문자화되고 풀네임이 아닌 빈의 별명으로 등록될 것이다. 즉, domain.blog.Author 은 author 로 등록될 것이다. 만약 @Alias 어노테이션이 발견된다면, 그 값이 별명으로 사용될것이다. 아래 예제를 보자. @Alias("author") public class Author { ... } 일반 자바타입에 대한 수 많은 내..
2012.04.19 -
203. 세팅 (Settings)
이것들은 마이바티스가 작동되는 방식을 수정하는 매우 중요한 내용이야. 다음 테이블은 각각의 세팅과 그 의미 그리고 기본값들을 설명한거야.세팅설명가능값기본값cacheEnabled이 설정으로 모든 매퍼의 모든 캐시를 전역으로 사용할지 말지를 결정true | falsetruelazyLoadingEnabled늦은 로딩을 전역으로 가능하게 할지 말지를 설정. disable이면 연관된 모든 것들은 빠른 로딩이 됨true | falsetrueaggressiveLazyLoadingenable일 경우, 늦은 로딩 프라퍼티 객체는 모든 늦은 로딩 프라퍼티의 호출에 의해 로드될 것이다. 반면, 각 프라퍼티는 필요에 의해 로딩.true | falsetruemultipleResultSetsEnabled하나의 구문으로부터 여러개..
2012.04.19 -
202. 속성들 (propertis)
이것들은 특정 자바 프라퍼티 파일 인스턴스에 설정되거나 프라퍼티 요소의 서브요소로 갈 수도 있는, 외부로 빼거나 대용 가능한 속성들이야. 예를 들면 프라퍼티는 동적으로 속성값을 대체하기 위해, 속성 파일 전체에 걸쳐 사용될 수 있어, 예를 들면 이 예제에서 username과 passwor는 프라퍼티 요소로 세팅된 값으로 대체될 수 있어. driver와 url 프라퍼티는 config.properties 파일에 포함된 값으로 대체되지. 이는 많은 설정 옵션을 제공해.프라퍼티는 또한 SqlSessionBuilder.build() 메소드로 패스되기도 해. 예를 들면SqlSessionFactory factory = sqlSessionFactoryBuilder.build(reader, props); // ... o..
2012.04.18