본문 바로가기

Java/mybatis

autoMappingBehavior 와 mapUnderscoreToCamelCase 속성의 차이 마이바티스 환경 설정 파일에 정의된 구성 요소 가운데 작동 방식을 결정할 때 사용되는 구성 요소가 있다. 구성 요소에 사용 가능한 속성을 사용하면, 사용자가 원하는 방향으로 마이바티스 작동 방식을 지정할 수 있다. 이러한 속성 중 autoMappingBehavior 속성과 mapUnderscoreToCamelCase 속성이 있다. autoMappingBehavior 속성은 조회된 결과를 컬럼 명과 일치하는 자바 프로퍼티 사이에 자동 매핑 설정할지 여부를 지정한다. 기본 설정은 활성(true) 상태이다. 그리고 mapUnderscoreToCamelCase 속성은 언더바(_)로 구분되는 데이터베이스 컬럼 명과 낙타 표기 형식을 따른 자바 프로퍼티를 자동 매핑할지 여부를 지정한다. 기본 설정은 비활성(fals.. 더보기
마이바티스에서 동적 쿼리를 생성하기 사용되는 형식은 아래와 같다. * 조건식이 참인 경우에 이 곳에 기술된 내용을 조건절에 추가. test 속성 값으로 조건식이 기술되는데 OGNL 표현식도 가능하다. 사용자들은 일반적으로 알려지고 자주 사용되는 OGNL 표현식 외에 보다 실험적인 OGNL 표현식을 사용하지 않는 것 같다. 예를 들어 test="value != null" 정도인 것 같다. 하지만 눈을 조금만 돌리면 아래와 같은 표현식도 가능하다는 것을 알 수 있다. * 파라미터 값이 1, 2, 3 인 경우 이 곳에 기술된 내용을 조건절에 추가. 또한 '=' : gte '==' : eq '!=' : neq 더보기
마이바티스는 동적 쿼리문 생성에 사용되는 <if /> 구성 요소를 제공... 마이바티스는 동적 쿼리문 생성에 사용되는 구성 요소를 제공합니다. 구성 요소는 인자로 전달된 파라미터 값과 기준 값을 비교하여 참인 경우에 구성 요소 사이의 조건절을 추가합니다. 식(항식)은 test 속성에 정의됩니다. 식(항식)에는 OGNL 표현식을 사용할 수 있으며, 크게 기본 자료형 비교, 참조 자료형 비교, 그리고 문자열 비교에 사용됩니다. 사용되는 예를 살펴보면, 아래와 같습니다. 1. 기본 자료형 비교 1) 프로퍼티 속성 값과 기준 값이 동일한 경우. 2) 프로퍼티 속성 값과 기준 값이 동일하지 않는 경우. 3) 프로퍼티 속성 값이 기준 값 보다 큰 경우. 4) 프로퍼티 속성 값이 기준 값 보다 크거나 같은 경우. 5) 프로퍼티 속성 값이 기준 값 보다 작은 경우. (' 더보기
마이바티스와 아이바티스 설정 비교 1. DTD 규칙 정의 ◆ 설절 파일의 DTD @ ibatis @ mybatis ◆ 매퍼 XML의 DTD @ ibatis @ mybatis 2. 설정 파일 변환 규칙 ◆ 최상위 엘리먼트 @ ibatis @ mybatis ◆ settings 엘리먼트 @ ibatis @ mybatis ◆ transactionManager 엘리먼트와 dataSource 엘리먼트 @ ibatis @ mybatis ◆ mapper 설정 @ ibatis @ mybatis 3. 매퍼 XML 변환 규칙 ◆ XML 엘리먼트 @ ibatis @ mybatis ◆ 중첩 결과 매핑 설정 @ ibatis ..... @ mybatis ..... ◆ 파라미터 매핑 처리 구문 @ ibatis parameterMap @ mybatis paramete.. 더보기
[javaModel, sqlMap]Generator 및 table 엘리먼트에서 설정 가능한 프로퍼티 1. javaModelGenerator Properties Description constructorBased 클래스의 전체 필드를 가진 생성자를 만들지 설정한다. 이 프로퍼티를 사용하면 각 필드에 대해 setter 메소드보다는 생성자를 사용하게 처리한다. 단, 이 프로퍼티는 마이바티스를 위한 옵션으로 아이바티스에서는 무시한다. 선택할 수 있는 값은 true, false 두 가지 값 중 하나이며, [디폴트 값은 false이다.] enableSubPackages 대상 테이블의 스키마 이름을 하위 패키지로 사용할지에 대한 옵션이다. 예를 들어 테이블명이 mytable이고 스키마를 myschema로 가정하자. targetPackage 속성을 madnix로 설정하고 이 프로퍼티를 true로 설정하면 생성된 파일.. 더보기
SqlBuilder 의 중요 메소드 Method Description BEGIN() / RESET() 마이바티스 구문 빌더는 생성할 SQL을 스레드로컬에 저장한다. BEGIN() 메소드와 RESET() 메서드는 스레드로컬의 상태를 초기화하고 새로운 구문을 추가하기 위해 준비한다. BEGIN() 메소드는 새로운 구문을 추가할 때 호출하고 RESET() 메소드는 실행 중간에 구문을 초기화할 때 호출한다. SELECT(String) SELECT를 시작하거나 추가한다. 한 번 이상 호출할 수 있고 파리미터는 SELECT 뒤에 추가한다. 파라미터는 컬럼과 컬럼 별칭의 목록이고 SELECT 메소드를 호출할 때마다 쉼표를 자동으로 붙여준다. 컬럼이 5개라면 컬럼별로 호출해도 되고 컬럼 5개를 모두 명시해서 한 번만 호출해도 된다. SELECT_DIST.. 더보기
mapper 인터페이스에서 사용 가능한 annotation Annotation Location XML Element Description @CacheNamespace class 네임스페이스가 되는 인터페이스별로 Cache를 설정한다. 사용 가능한 속성은 implementation, eviction, flushInterval, size, 그리고 readWrite 등이 있다. @CacheNamespaceRef class 다른 네임스페이스의 캐시 설정을 그대로 사용하기 위해 사용할 캐시 설정이 담긴 네임스페이스를 지정한다. 사용 가능한 속성은 네임스페이스의 이름 적어주는 value 한 개다. @ConstructorArgs method 조회 결과를 자바 객체에 설정할 때 생성자를 사용해서 처리한다. 사용 가능한 속성은 @Arg 어노테이션의 배열을 갖는 value 이다... 더보기
ClassLoader를 활용한 Thread 호출하기 # Thread.currentThread().getContextClassLoader( ) 의 기능 ClassLoader의 주요 기능은 클래스를 로딩하는 것 뿐만 아니라 다른 리소스도 읽어 올 수 있는 유용한 기능을 제공한다. ClassLoader는 스레드에서 획득할 수가 있다. 여기서 획득된 스레드는 어떤 기반에서 생성된 것인지 구분을 해서 사용해야 한다. 주로 자바 main( ) 메소드 기반의 단독 애플리케이션을 예를 들지만 일반적으로는 웹 애플리케이션을 주로 다룰 것이다. 따라서 스레드를 어떤 기반에서 가져올 것인지 고려해야 하는 것이다. 단독 애플리케이션 환경에서는 ClassLoader.getSystemResourceAsStream( ) 메소드를 통해 해당 리소스를 읽어오면 되지만, 웹 애플리케이션.. 더보기