주 프로필 인식
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<properties/>
<settings/>
<typeAliases/>
<typeHandlers/>
<ObjectFactory/>
<plugins/>
<environments/>
<mappers/>
</configuration/>
속성
properties 는 자바 의. properties 설정 파일 과 관련 이 있 습 니 다.properties 태그 에 있 는 resource 가. properties 경 로 를 지정 하고 properties 태그 에 있 는 property 속성의 name 과 value 값 을 설정 하면. properties 파일 의 해당 속성 값 을 교체 할 수 있 습 니 다.
예:
<properties resource="jdbc.properties">
<property name="jdbc.driverClassName" value="com.mysql.jdbc.Driver"/>
<property name="jdbc.url" value="jdbc:mysql://localhost:3306/student_manager"/>
<property name="username" value="root"/>
<property name="password" value="limingnihao"/>
</porperties>
설정 설정
이것 은 MyBatis 가 운영 과정의 세부 사항 을 수정 하 는 중요 한 절차 이다.아래 표 는 이 설정 항목, 의미, 기본 값 을 설명 합 니 다.
설정 항목
묘사 하 다.
허용 값
기본 값
cacheEnabled
이 프로필 에 있 는 모든 cache 를 전역 적 으로 열 고 닫 습 니 다.
true | false
true
lazyLoadingEnabled
전역 설정 게 으 름 로드.'false' 로 설정 하면 연 결 된 모든 것 이 초기 화 됩 니 다.
true | false
true
aggressiveLazyLoading
'true' 로 설정 되 었 을 때 게 으 른 로 딩 대상 은 모든 게 으 른 속성 으로 불 러 올 수 있 습 니 다.그렇지 않 으 면 모든 속성 을 필요 에 따라 불 러 옵 니 다.
true | false
true
multipleResultSetsEnabled
단일 문 구 를 여러 데이터 세트 로 되 돌려 주 는 것 을 허용 하거나 허용 하지 않 습 니 다 (구동 수요 에 달 려 있 습 니 다)
true | false
true
useColumnLabel
열 이름 대신 열 탭 을 사용 합 니 다.서로 다른 드라이브 는 서로 다른 방법 이 있다.드라이브 문 서 를 참고 하거나 이 두 가지 다른 옵션 으로 테스트 해 보 세 요.
true | false
true
useGeneratedKeys
JDBC 에서 메 인 키 를 만 들 수 있 도록 합 니 다.드라이브 지원 이 필요 합 니 다.트 루 로 설정 하면 이 설정 은 생 성 된 메 인 키 를 강제로 사용 합 니 다. 일부 드라이브 는 호 환 되 지 않 지만 실행 할 수 있 습 니 다.
true | false
false
autoMappingBehavior
MyBatis 가 데이터 시트 필드 와 대상 의 속성 을 자동 으로 매 핑 할 지 여 부 를 지정 합 니 다.PARTIAL 은 끼 워 넣 은 결과 가 없 는 간단 한 것 만 자동 으로 매 핑 합 니 다.FULL 은 모든 복잡 한 결 과 를 자동 으로 반영 합 니 다.
NONE, PARTIAL, FULL
PARTIAL
defaultExecutorType
실행 기 설정 및 설정, SIMPLE 실행 기 는 다른 문 구 를 실행 합 니 다.REUSE 실행 기 는 prepared statements 문 구 를 중복 사용 할 수 있 으 며, BATCH 실행 기 는 실행 문 구 를 반복 하고 일괄 업데이트 할 수 있 습 니 다.
SIMPLE REUSE BATCH
SIMPLE
defaultStatementTimeout
드라이브 가 데이터베이스 응답 을 기다 리 는 시간 을 초과 할 수 있 도록 시간 을 설정 합 니 다.
정수
Not Set (null)
<settings>
<setting name="cacheEnabled" value="true" />
<setting name="lazyLoadingEnabled" value="true" />
<setting name="multipleResultSetsEnabled" value="true" />
<setting name="useColumnLabel" value="true" />
<setting name="useGeneratedKeys" value="false" />
<setting name="enhancementEnabled" value="false" />
<setting name="defaultExecutorType" value="SIMPLE" />
</settings>
type: Aliases
형식 별명 은 자바 형식의 약칭 이다
XML 설정, 지루 한 JAVA 클래스 만 연 결 됩 니 다.
예:
<typeAliases>
<typeAlias alias="UserEntity" type="com.manager.data.model.UserEntity" />
<typeAlias alias="StudentEntity" type="com.manager.data.model.StudentEntity" />
<typeAlias alias="ClassEntity" type="com.manager.data.model.ClassEntity" />
</typeAliases>
이 설정 을 사용 하면 UserEntity 이 값 은 com. manager. data. model. UserEntity 대신 설정 파일 에 나타 납 니 다.
type: Handlers 형식 핸들
MyBatis 전처리 문 에 파 라 메 터 를 설정 하 든 결과 에서 한 값 을 집중 적 으로 꺼 낼 때 형식 처리 기 는 가 져 온 값 을 자바 형식 으로 변환 하 는 데 사 용 됩 니 다.다음은 기본 형식 프로세서 입 니 다.
형식 프로세서
Java 형식
JDBC 형식
BooleanTypeHandler
Boolean,boolean
호 환 되 는 불 값
ByteTypeHandler
Byte,byte
호 환 되 는 숫자 나 바이트 형식
ShortTypeHandler
Short,short
호 환 되 는 숫자 나 짧 은 정형
IntegerTypeHandler
Integer,int
호 환 되 는 모든 숫자 와 정형
LongTypeHandler
Long,long
호 환 되 는 숫자 나 긴 정형
FloatTypeHandler
Float,float
호 환 되 는 숫자 나 단일 정밀도 부동 소수점 형
DoubleTypeHandler
Double,double
호 환 되 는 숫자 나 이중 정밀도 부동 소수점 형
BigDecimalTypeHandler
BigDecimal
호 환 되 는 숫자 나 10 진 소수 형식
StringTypeHandler
String
CHAR 와 VARCHAR 타 입
ClobTypeHandler
String
CLOB 와 LONGVARCHAR 타 입.
NStringTypeHandler
String
NVARCHAR 와 NCHAR 타 입
NClobTypeHandler
String
NCLOB 타 입
ByteArrayTypeHandler
byte[]
호 환 되 는 바이트 흐름 형식
BlobTypeHandler
byte[]
BLOB 와 LONGVARBINARY 타 입.
DateTypeHandler
Date(java.util)
TIMESTAMP 유형
DateOnlyTypeHandler
Date(java.util)
DATE 형식
TimeOnlyTypeHandler
Date(java.util)
TIME 형식
SqlTimestampTypeHandler
Timestamp(java.sql)
TIMESTAMP 유형
SqlDateTypeHandler
Date(java.sql)
DATE 형식
SqlTimeTypeHandler
Time(java.sql)
TIME 형식
ObjectTypeHandler
Any
기타 또는 지정 되 지 않 은 형식
EnumTypeHandler
열거 유형
VARCHAR - 색인 대신 호 환 되 는 문자열 형식 입 니 다.
형식 프로 세 서 를 다시 쓰 거나 지원 되 지 않 거나 표준 이 아 닌 형식 프로 세 서 를 만 들 수 있 습 니 다.이렇게 하려 면 TypeHandler 인터페이스 () 를 간단하게 구현 한 다음 자바 형식 에 새로운 종류의 프로세서 클래스 를 매 핑 하고 선택 할 수 있 는 JDBC 형식 도 있 습 니 다. 그리고 typeHandlers 에 이 종류의 프로 세 서 를 추가 하거나 매 핑 파일 의 인자 와 결과 매 핑 에 typeHandler 속성 을 추가 합 니 다.
하지만 주의해 야 합 니 다.
(1) type: Handlers 에 이 종류의 프로 세 서 를 추가 하면 자바 의 형식 속성 과 JDBC 형식 매개 변수 및 결 과 를 처리 하 는 형식 프로 세 서 를 덮어 씁 니 다. 따라서 맵 파일 에 해당 하 는 JDBC 형식 필드 의 매개 변 수 를 설정 해 야 합 니 다.
(2) 맵 파일 에 type: Handler 속성 을 추가 하면 이 결 과 는 형식 프로 세 서 를 사용 합 니 다.
예 를 들 어 다음 종류의 프로세서 가 추가 되 었 습 니 다.
/**
*
*/
package com.myapp.test;
import java.sql.CallableStatement;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import org.apache.ibatis.type.JdbcType;
import org.apache.ibatis.type.TypeHandler;
/**
* @author louisliao
*
*/
public class MyTestTypeHandler implements TypeHandler {
/**
*
*/
public MyTestTypeHandler() {
// TODO Auto-generated constructor stub
}
/* (non-Javadoc)
* @see org.apache.ibatis.type.TypeHandler#setParameter(java.sql.PreparedStatement, int, java.lang.Object, org.apache.ibatis.type.JdbcType)
*/
public void setParameter(PreparedStatement ps, int i, Object parameter,
JdbcType jdbcType) throws SQLException {
// TODO Auto-generated method stub
ps.setString(i, ((String)parameter));
}
/* (non-Javadoc)
* @see org.apache.ibatis.type.TypeHandler#getResult(java.sql.ResultSet, java.lang.String)
*/
public Object getResult(ResultSet rs, String columnName)
throws SQLException {
// TODO Auto-generated method stub
return rs.getString(columnName);
}
/* (non-Javadoc)
* @see org.apache.ibatis.type.TypeHandler#getResult(java.sql.CallableStatement, int)
*/
public Object getResult(CallableStatement cs, int columnIndex)
throws SQLException {
// TODO Auto-generated method stub
return cs.getString(columnIndex);
}
}
위 설정 에서 알 수 있 듯 이 MyBatis 는 자바 의 String 형식 속성 과 JDBC 의 VARCHAR 형식 매개 변수 및 결 과 를 처리 하 는 형식 프로 세 서 를 덮어 씁 니 다. 맵 파일 에 jdbcType = "VARCHAR" 만 지정 되 어 있 습 니 다.자바 빈 속성 에 대응 하 는 필드 와 필드 가 String 일 때 만 com. myapp. test. MyTestTypeHandler 라 는 종류의 프로 세 서 를 사용 합 니 다. 지정 되 지 않 으 면 사용 하지 않 습 니 다.
아래 맵 파일 과 같이
<resultMap id="ClassesResultMap" type="com.myapp.domain.Classes" >
<id column="c_id" property="id" jdbcType="INTEGER" />
<result column="c_name" property="name" jdbcType="VARCHAR" />
<association property="teacher" javaType="com.myapp.domain.Teacher">
<id column="t_id" property="id"/>
<result column="t_name" property="name" typeHandler="com.myapp.test.MyTestTypeHandler"></result>
</association>
</resultMap>
설명: < result column = "c name" property = "name" jdbcType = "VARCHAR" / > 결과 에서 name 값 을 가 져 올 때 형식 프로세서 com. myapp. test. MyTestTypeHandler 를 호출 합 니 다.
플러그 인 s 플러그 인
MyBatis 는 매 핑 된 구문 에서 실 행 된 호출 을 차단 할 수 있 습 니 다. 기본 값 으로 MyBatis 는 플러그 인 을 사용 하여 호출 을 차단 할 수 있 습 니 다.
이러한 종류의 방법 에 대한 자세 한 내용 은 각 방법의 서명 을 통 해 알 수 있 으 며, 소스 코드 는 MyBatis 배포 패키지 에 있 습 니 다. 덮어 쓰 는 방법 을 이해 해 야 합 니 다. 감시 호출 보다 더 많이 한다 고 가정 하 십시오. 주어진 방법 을 수정 하거나 덮어 쓰 려 고 하면 MyBatis 의 핵심 을 깨 뜨 릴 수 있 습 니 다. 이것 은 낮은 차원 의 클래스 와 방법 입 니 다.플러그 인 을 신중하게 사용 하 세 요.
플러그 인 을 사용 하 는 것 은 매우 간단 한 힘 입 니 다. 차단기 인 터 페 이 스 를 간단하게 실현 하고 차단 하고 싶 은 지정 한 서명 을 확인 하 십시오.
환경
Mybatis 는 여러 환경 을 설정 할 수 있 습 니 다. 이것 은 SQL 맵 이 여러 데이터베이스 에 대응 하 는 데 도움 을 줄 수 있 습 니 다.
<environments default="development">
<environment id="development">
<transactionManager type="JDBC"/>
<dataSource type="POOLED">
<property name="driver" value="net.sourceforge.jtds.jdbc.Driver"/>
<property name="url" value="jdbc:jtds:sqlserver://127.0.0.1:1433;DatabaseName=spring3mvc"/>
<property name="username" value="sa"/>
<property name="password" value="wlyoa_)*#!"/>
</dataSource>
</environment>
</environments>
mappers 매 핑 기
MyBatis 가 SQL 을 비 추 는 문 구 를 어디서 찾 는 지 알려 줍 니 다. 클래스 경로 의 자원 참조 나 문 자 를 사용 하여 정확 한 URL 참 조 를 입력 할 수 있 습 니 다.
<mappers>
<mapper resource="com/myapp/mapper/UserMapper.xml"/>
<mapper resource="com/myapp/mapper/ClassesMapper.xml"/>
</mappers>
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Is Eclipse IDE dying?In 2014 the Eclipse IDE is the leading development environment for Java with a market share of approximately 65%. but ac...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.