속성
이들은 일반적인 Java 속성 구성 파일로 구성되거나 속성 요소의 하위 요소를 통과 할 수있는 외부화 된 대체 속성입니다. 예를 들어:
<properties resource = "org/mybatis/example/config.properties"> <property name = "username"value = "dev_user"/> <property name = "password"value = "f2fa3! 33tyyg"/> </properties>
그 속성은 구성 파일 전체에서 사용할 수 있으며 교체 가능한 속성은 동적 구성을 구현하는 데 사용됩니다. 예를 들어:
<dataSource type = "풀링"> <속성 이름 = "driver"value = "$ {driver}"/> <속성 이름 = "url"value = "$ {url}"/> <속성 이름 = "username"value = "$ {username}"/> <property name = "password"vale = "$ {password}"/>> </datasource>
이 예에서는 사용자 이름과 비밀번호가 속성 요소에 설정된 값으로 대체됩니다. 드라이버 및 URL 속성은 config.properties 파일에 포함 된 값으로 대체됩니다.
설정
1. Cacheenabled
이 구성을 통해 Global Mapper는 캐시를 활성화 또는 비활성화 할 수 있습니다.
유효한 값 : true, false
기본값 : true
2. lazyloadingEnabled
전 세계적으로 게으른로드를 활성화 또는 비활성화합니다. 비활성화되면 모든 관련 객체가 즉시로드됩니다.
유효한 값 : true, false
기본값 : true
3. 공격적 인 태도
활성화되면 로딩 속성 지연이 지연된 객체는 호출시 속성을 완전히로드합니다. 그렇지 않으면,
각 속성은 필요에 따라로드됩니다.
유효한 값 : true, false
기본값 : true
4. mult iplerestsetSenabled
별도의 명령문에서 여러 결과 세트를 반환 할 수있게하거나 허용하지 않습니다 (적절한 드라이버 필요)
유효한 값 : true, false
기본값 : true
5. usecolumnlabel
열 이름 대신 열 레이블을 사용하십시오. 다른 드라이버는 다른 공연에 편리합니다. 드라이버 문서를 참조하거나 전체 방법을 테스트하여 사용 된 드라이버를 결정하십시오.
유효한 값 : true, false
기본값 : true
6. GeneratedKeys를 사용합니다
JDBC가 생성 된 키를 지원할 수 있습니다. 적절한 드라이브가 필요합니다. True로 설정되면이 설정은 생성 된 키를 사용하도록 강요하고 일부 운전자는 호환성을 거부하지만 여전히 유효합니다 (예 : Derby)
유효한 값 : true, false
기본값 : False
7. 자동 appingbehavior
mybatis가 열을 필드/속성에 자동으로 매핑하는 방법을 지정합니다. 부분은 자동으로 간단하게 매핑되며 중첩 된 결과가 없습니다.
Full은 복잡한 결과를 자동으로 매핑합니다 (목 또는 다른 방법)
유효한 값 : 없음, 부분, 가득
기본값 : 부분
8. defaultexecutortype
기본 집행자를 구성하십시오. 간단한 액추에이터에는 특별한 것이 없습니다. 재사용 집행자는 전처리 진술을 재사용합니다.
배치 집행자 재사용 명세서 및 배치 업데이트 유효한 값 : 단순, 재사용, 배치
기본값 : 간단합니다
9. DefaultStatementTimeout
운전자가 데이터베이스 응답을 기다리는 시간을 결정하는 시간 초과 시간을 설정하십시오.
유효한 값 : 모든, 긍정적 인 정수
기본값 : 설정되지 않음 (NULL)
정보 요소 설정의 예, 완전한 구성은 다음과 같습니다.
<settings> <setting name = "cacheenabled"value = "true"/> <setting name = "lazyloadingEnabled"value = "true"/> <설정 이름 = "multiplerestsetsetSenabled"value = "true"/> <setting name = "usecolumnlabel"value = "true"/> <setting name = "usegeneratedKeyys ="false ""false ". <setting name = "defaultexecutoType"value = "simple"/> <setting name = "defaultStatementTimeout"value = "25000"/> </settings>
변형
유형 별명은 Java 유형의 짧은 이름을 지정하는 것입니다. XML 구성과 관련이 있으며 클래스의 자격이있는 이름의 중복 부분 만 줄이는 데만 사용됩니다. 예를 들어:
<faintealias alias = "author"type = "domain.blog.author"/> <findealias alias = "blog"type = "type ="domain.blog "/> <avealias alias ="comment "type ="domain.blog.comment "/> <invelias alias ="post "post"acte ""domain.blog.post "/> <apentealias alias ="section alias ". type = "domain.blog.section"/> <faintealias alias = "tag"type = "domain.blog.tag"/> </inflealias>
이 구성에서 "블로그"는 "domain.blog.blog"가 사용되는 위치 대신 임의로 사용할 수 있습니다. 일반적인 Java 유형의 경우 많은 내장 유형 별명이 있습니다. 그것들은 사례에 민감하지 않으며, 과부하 된 이름으로 인해 기본 유형의 특수 처리에주의를 기울여야합니다.
유형 핸들러
mybatis가 전처리 명령문에서 매개 변수를 설정하든 결과 세트에서 값을 가져 오든 유형 프로세서는 획득 된 값을 적절한 방식으로 Java 유형으로 변환하는 데 사용됩니다. 다음 표는 기본 유형 프로세서를 설명합니다.
유형 프로세서를 다시 작성하거나 자신만의 유형 프로세서를 작성하여 지원되지 않거나 비표준 유형을 처리 할 수 있습니다. 그러나이 상황은 매우 드 rare니다! !
ObjectFactory
mybatis는 결과 객체의 새 인스턴스가 생성 될 때마다 ObjectFactory 인스턴스를 사용하여 수행됩니다. 매개 변수 맵이 존재하는 경우 기본 ObjectFactory는 기본 생성자 또는 매개 변수가있는 생성자를 사용하여 대상 클래스를 인스턴스화하는 것보다 더 이상 작동하지 않습니다. 기본 ObjectFactory를 다시 작성하려면 직접 만들 수 있습니다. 예제가 생략되었습니다.
플러그인
MyBatis를 사용하면 특정 지점에서 매핑 된 문으로 실행 된 통화를 가로 채 릴 수 있습니다. 기본적으로 MyBatis는 플러그인이 메소드 호출을 가로 채도록 허용합니다.
1. 실행사
(업데이트, 쿼리, FlushStatements, Commit, Rollback, GetTransaction, Close, Isclose)
2. 매개 변수 핸들러
(getParameterObject, setParameters)
3. resultsethandler
(handleresultsets, handleoutputparameters)
4. Statementhandler
(준비, 매개 변수화, 배치, 업데이트, 쿼리)
환경
MyBatis는 여러 환경으로 구성 할 수 있습니다. 이것은 여러 데이터베이스에 SQL 매핑을 적용하는 데 도움이됩니다.
기억해야 할 매우 중요한 질문 : 여러 환경을 구성 할 수 있지만 각 SQLSESSESSICTORY 인스턴스에 대해 하나만 선택할 수 있습니다. 따라서 두 데이터베이스에 연결하려면 각 데이터베이스마다 하나씩 두 개의 SQLSESSIONFACTORY 인스턴스를 작성해야합니다. 그리고 3 개의 데이터베이스 인 경우 3 개의 인스턴스가 필요합니다.
환경 요소는 예를 들어 환경을 구성하는 방법을 정의합니다.
<환경 기본값 = "개발"> <환경 ID = "개발"> <transactionManager type = "jdbc"> <속성 이름 = "..."value = "..."... "/> </transactionManager> <dataSource type ="pooled "> <속성 이름 ="driver "value ="$ {driver} "/> 값 = "$ {username}"/> <속성 이름 = "password"value = "$ {password}"/> </dataSource> </환경> </환경> 참고 :
1. 기본 환경 ID (예 : Default = "Development").
2. 각 환경 요소로 정의 된 환경 ID (예 : id =”개발”).
3. 트랜잭션 관리자 구성 (예 : type = "jdbc").
4. 데이터 소스 구성 (예 : type = "풀링").
TransactionManager
MyBatis에는 두 가지 유형의 트랜잭션 관리자가 있습니다 (예 : type = "[JDBC | Managed]".
1.JDBC ---이 구성을 직접적으로 직접 그리고 간단히 JDBC의 커밋 및 롤백 설정을 사용합니다. 트랜잭션 범위를 관리하기 위해 데이터 소스에서 얻은 연결에 의존합니다.
2. 관리 ---이 구성은 거의 아무것도하지 않습니다. 연결을 커밋하거나 롤백하지 않습니다. 또한 컨테이너는 트랜잭션의 전체 수명주기 (예 : Spring 또는 JEE Application Server의 컨텍스트)를 관리 할 수 있습니다. 기본적으로 연결을 닫습니다. 그러나 일부 컨테이너는 이것을 원하지 않으므로 연결에서 중지 해야하는 경우 CloseConnection 속성을 False로 설정하십시오. 예를 들어:
<transactionManager type = "managed"> <property name = "closeConnection"value = "false"/> </transactionManager>
트랜잭션 관리자 모두 부동산이 필요하지 않습니다. 그러나 그것들은 모두 유형 별명이며, 교체하려면 자신의 자격을 갖춘 이름 또는 유형 별명을 자신의 클래스의 별명을 배치해야하며, 이는 트랜스 팩토리 인터페이스의 구현 클래스를 참조해야합니다.