공부/MYBATIS(25)
-
303. insert, update and delete
데이터 수정 구문인 insert, update 와 delete 는 그들의 구현체와 매우 비슷해. Insert, Update and Delete 속성 속성설명id 구문을 참조하기 위해 사용될 수 있는 이 네임스페이스의 유일한 구분자 parameterType 이 구문으로 전달될 파라미터를 위한 전체 클래스 이름이나 별명parameterMapThis is a deprecated approach to referencing an external parameterMap. Use inline parameter mappings and the parameterType attribute.flushCache true로 세팅할 경우, 이 구문이 호출될 때마다 로컬 및 2단계 레벨 캐시가 지워질것이다(flushed). 기본값 ..
2012.04.27 -
302. 셀렉트 (SELECT)
조회구문은 마이바티스 사용 시에 정말 많이 사용하게될 요소 중 하나야. 데이터베이스 안에 넣어둔 데이터는 꺼내기 전까지 징하게 가치있는 건 아니야. 그래서 대부분의 어플리케이션은 데이터를 수정하는 것보다 조회를 더 많이 하지. 모든 삽입, 수정, 삭제시에도 아마 많은 조회가 있을겨. 이점이 마이바티스의 하나의 원칙이고, 결과 매핑과 조회에 좀 더 집중하고 매진하는 이유야. 조회 구문은 간단한 경우 매우 간단해. 예를 들면 SELECT * FROM PERSON WHERE ID = #{id} 이 구문은 selectPerson이라 불리고 int (혹은 integer) 형 파라미터를 가지지, 그리고 행 값에 컬럼이름으로 키가 주어진 해시맵을 리턴해.파라미터 표기법을 보자#{id}이것은 마이바티스가 Perpare..
2012.04.25 -
301. XML 매핑 파일 (Mapper XML Files )
마이바티스의 진짜 힘은 매핑된 구문이야. 여기가 마술이 일어나는 곳이지. 그 모든 힘에 비해 XML 매핑 파일은 상대적으로 단순해. 동등한 JDBC코드와 비교해보았다면, 95% 정도의 코드를 절약하는 것을 볼 수 있어. 마이바티스는 SQL에 초점을 두고 개발되어졌으므로, 최선은 네가 하고자 하는 것을 피하는 것이다 (? its best to stary out of your way)XML 매핑 파일은 몇 개의 first class 요소들을 갖는다 ( 그것들이 정의된대로 )cache – 주어진 네임스페이스에 대한 설정cache-ref – 타 네임스페이스로부터의 캐시설정 참조resultMap – 데이터베이스 결과집합으로부터 객체를 어떻게 로드하는지를 묘사하는 가장 복잡하고 강력한 요소parameterMap –..
2012.04.24 -
210. 매퍼 (mappers)
지금까지 거론된 설정 요소에 의해 마이바티스의 행동이 설정되었고, 매핑된 SQL 구문을 정의할 준비가 되었어. 하지만 먼저, 어디에 그것들을 정의할지 마이바티스에 알려줄 필요가 있지. 자바는 이것과 관련된 어떠한 좋은 도구도 제공하지 않으므로, 가장 좋은 방법은 매핑파일을 어디서 찾을 수 있는지 마이바티스에게 간단하게 말하는 거야. 상대경로의 리소스 참조 클래스 패스를 사용할 수도 있고, 무자 그대로의 풀 url 참조(file:// 를 포함한 URL)를 사용할 수도 있어. 예를 들면 이러한 구문들이 어디로 찾아가야할 지 마이바티스에게 알려주는 방법들이야. 세부사항의 나머지 부분은 각각의 SQL 매핑파일의 내부에 있고, 다음 장에서 이에 대해 논의할 것이야
2012.04.23 -
209. 데이터베이스 아이디 프로바이더 (databaseIdProvider)
마이바티스는 데이터베이스 벤더에 따른 다양한 구문을 실행할 수 있어. 다중 벤더 지원은 매핑된 구문의 databaseID 속성에 기초하지. databasID가 없으면 마이바티스는 모든 구문을 로드하겠지만, databaseID가 있으면 그에 맞는 하나만 로드해. databaseID가 있고 없는 동일 구문이 발견된 경우에 databaseID가 없는 구문은 무시돼. 다중 벤더 지원을 가능하게 하려면 databaseIdProvider 를 mybatis-config.xml 파일에 다음과 같이 기술해VENDER 구현체 databaseIdProvider는 DatabaseMetaData#getDatabaseProductName()에 의해 리턴된 문자열로 databaseId를 세팅해. 그 문자열이 너무 길거나같은 제품의..
2012.04.23 -
208. 환경 (Environments)
마이바티스는 다중환경으로 설정될 수 있어. 이는 다양한 이유로 다수의 데이터베이스에 SQL 매핑을 적용할 수 있게 해주지. 예를 들면, 개발환경, 테스트 환경, 실제 환경을 각기 다르게 설정할 수 있고, 동일 스키마를 공유하는 다수의 데이터베이스를 지원한다거나, 동일한 SQL 매핑을 사용하고 싶을 수도 있어. 암튼 수많은 경우가 있어.그렇지만, 기억해야할 한 가지 중요한 것 : 다중 환경을 설정할 수 있지만, SQLSessionFactory 인스턴스 당 오직 하나만 선택할 수 있어.따라서 두 개의 데이터베이스에 연결하고 싶다면, SqlSessionFactory를 각각 하나씩 두개를 생성할 필요가 있어. 3개의 데이터베이스라면, 3개의 인스턴스가 필요하고, 더 연결하고 싶다면 더 필요하겠지. 참 기억하기 ..
2012.04.20