공부(57)
-
208. 환경 (Environments)
마이바티스는 다중환경으로 설정될 수 있어. 이는 다양한 이유로 다수의 데이터베이스에 SQL 매핑을 적용할 수 있게 해주지. 예를 들면, 개발환경, 테스트 환경, 실제 환경을 각기 다르게 설정할 수 있고, 동일 스키마를 공유하는 다수의 데이터베이스를 지원한다거나, 동일한 SQL 매핑을 사용하고 싶을 수도 있어. 암튼 수많은 경우가 있어.그렇지만, 기억해야할 한 가지 중요한 것 : 다중 환경을 설정할 수 있지만, SQLSessionFactory 인스턴스 당 오직 하나만 선택할 수 있어.따라서 두 개의 데이터베이스에 연결하고 싶다면, SqlSessionFactory를 각각 하나씩 두개를 생성할 필요가 있어. 3개의 데이터베이스라면, 3개의 인스턴스가 필요하고, 더 연결하고 싶다면 더 필요하겠지. 참 기억하기 ..
2012.04.20 -
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