MyBatis 의 구조 와 설정
1 public interface SqlSession extends Closeable {
2 T selectOne(String var1);
3
4 T selectOne(String var1, Object var2);
5
6 List selectList(String var1);
7
8 List selectList(String var1, Object var2);
9
10 List selectList(String var1, Object var2, RowBounds var3);
11
12 Map selectMap(String var1, String var2);
13
14 Map selectMap(String var1, Object var2, String var3);
15
16 Map selectMap(String var1, Object var2, String var3, RowBounds var4);
17
18 Cursor selectCursor(String var1);
19
20 Cursor selectCursor(String var1, Object var2);
21
22 Cursor selectCursor(String var1, Object var2, RowBounds var3);
23
24 void select(String var1, Object var2, ResultHandler var3);
25
26 void select(String var1, ResultHandler var2);
27
28 void select(String var1, Object var2, RowBounds var3, ResultHandler var4);
29
30 int insert(String var1);
31
32 int insert(String var1, Object var2);
33
34 int update(String var1);
35
36 int update(String var1, Object var2);
37
38 int delete(String var1);
39
40 int delete(String var1, Object var2);
41
42 void commit();
43
44 void commit(boolean var1);
45
46 void rollback();
47
48 void rollback(boolean var1);
49
50 List flushStatements();
51
52 void close();
53
54 void clearCache();
55
56 Configuration getConfiguration();
57
58 T getMapper(Class var1);
59
60 Connection getConnection();
61 }
62
구체 적 으로 설명 하면 여 기 는 기록 을 하지 않 고 사용 할 때 조회 하면 됩 니 다.메모: 실제 응용 에 서 는 DriverManager 를 사용 하여 데이터 베 이 스 를 연결 하 는 경우 가 많 지 않 습 니 다. 보통 DataSource 를 사용 하여 데이터 베 이 스 를 연결 합 니 다. SqlSession Factory 바 텀 에 DataSource 가 패키지 되 어 있 습 니 다.MyBatis 의 설정 파일 은 앞의 test 테스트 클래스 파일 코드 를 되 돌아 봅 니 다.
1 public class Test {
2 public static void main(String[] args) throws IOException {
3 InputStream inputStream = Resources.getResourceAsStream("mybatis-config.xml");
4 SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
5 SqlSession sqlSession = sqlSessionFactory.openSession();
6 User user = new User("Snow"," ",20);
7 sqlSession.insert("com.snow.dcl.mapper.UserMapper.saveUser",user);
8 sqlSession.commit();
9 sqlSession.close();
10 }
11 }
우선, mybatis - config. xml 합성 파일 읽 기:
1 InputStream inputStream = Resources.getResourceAsStream("mybatis-config.xml");
그리고 my batis 를 초기 화하 고 SqlSession Factory 의 인 스 턴 스 를 만 듭 니 다.
1 SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
마지막 으로 SqlSession 대상 을 가 져 와 SQL 문 구 를 실행 합 니 다.
1 SqlSession sqlSession = sqlSessionFactory.openSession();
2 ...
3 sqlSession.insert("com.snow.dcl.mapper.UserMapper.saveUser",user);
이 를 통 해 알 수 있 듯 이 MyBatis 의 초기 화 과정 은 다음 과 같은 절 차 를 거 쳐 야 합 니 다. 1. SqlSession Factory Builder 대상 의 build (input Stream) 방법 을 호출 합 니 다.2. SqlSession Factory Builder 는 입력 흐름 input Stream 등 정보 에 따라 XMLconfigBuilder 대상 을 만 듭 니 다.3. SqlSession Factory Builder 에서 XML configBuilder 대상 의 parse () 방법 을 호출 합 니 다.4. XML configBuilder 대상 은 XML 프로필 을 분석 하여 Configuration 대상 으로 되 돌려 줍 니 다.5. SqlSession Factory Builder 는 Configuration 대상 에 따라 Default Session Factory 대상 을 만 듭 니 다.6. SqlSession Factory Builder 는 클 라 이언 트 가 사용 할 수 있 도록 Default Session Factory 대상 을 클 라 이언 트 에 게 되 돌려 줍 니 다.프로필 속성 MyBatis 의 프로필 은 다음 과 같은 구 조 를 포함 합 니 다. 1. properties 속성 properties 의 속성 은 모두 외부 설정 이 가능 하고 동적 으로 교체 할 수 있 습 니 다. 전형 적 인 자바 속성 파일 에서 설정 할 수도 있 고 properties 요소 의 하위 요 소 를 통 해 전달 할 수도 있 습 니 다.2. settings 설정 settings 는 MyBatis 에서 매우 중요 한 설정 으로 MyBatis 가 실 행 될 때의 행동 을 변경 합 니 다. settings 요 소 는 다음 과 같 습 니 다.
1
2
3 logImpl" value="Log4J"/>
4
5 cacheEnabled" value="true"/>
6
다른 옵션 은 프로젝트 를 개발 할 때 필요 한 조회 에 따라 사용 할 수 있 습 니 다. 아래 에 일부 인 자 를 보 여 줍 니 다.
매개 변수
묘사 하 다.
유효 치
cacheEnabled
이 설정 은 모든 맵 캐 시 에 영향 을 주 는 전역 스위치 입 니 다.
true/false
lazyLoadingEnabled
로드 지연 전역 스위치
true/false
useGenaratedKeys
JDBC 에서 홈 키 자동 생 성 지원
true/false
logImpl
MyBatis 에 사용 할 로그 의 구체 적 인 구현 을 지정 합 니 다. 지정 되 지 않 았 을 때 자동 으로 찾 습 니 다.
SLF4J/LOG4J/LOG4J2
1. tpyeAliases 형식 이름
형식 별명 은 자바 형식 으로 짧 은 별명 을 설정 합 니 다. XML 설정 과 만 관련 이 있 습 니 다. 존재 하 는 의 미 는 클래스 가 완전히 한 정 된 이름 의 번 거 로 움 을 줄 이 는 데 있 습 니 다.
1
2 User" alias="com.snow.dcl.domain.User"/>
3
이렇게 설정 할 때 사용 자 는 com. snow. dcl. domain. User 를 사용 하 는 모든 곳 에 사용 할 수 있 습 니 다.
1
2 <package name="com.snow.dcl.domain"/>
3
이렇게 설정 할 때, 각각 com. snow. dcl. domain 가방 에 있 는 자바 빈 은 주석 이 없 는 상태 에서 빈 의 이니셜 소문 자의 비 한정 클래스 이름 을 별명 으로 사용 합 니 다. 예 를 들 어 com. snow. dcl. domain. User 별명 은 user 입 니 다.
1 @Alias("user")
2 public class User {
3 ...
4 }
주해 가 있 으 면, 별명 은 주해 값 이다.
1. typeHandlers 형식 프로세서
MyBatis 가 전처리 문 (Prepared Statement) 에 인 자 를 설정 할 때 나 결과 에서 한 값 을 집중 적 으로 꺼 낼 때 나 형식 프로세서 로 가 져 온 값 을 자바 형식 으로 변환 합 니 다.
2. objectFactory 대상 공장
MyBatis 는 결과 대상 의 새로운 인 스 턴 스 를 만 들 때마다 대상 공장 인 스 턴 스 를 사용 합 니 다.
3. plugins 플러그 인
4. 환경 환경
환경 변수
트 랜 잭 션 관리자
dataSource 데이터 원본
MyBatis 의 환경 설정 은 실제 데이터 원본 의 설정 입 니 다.MyBatis 는 다양한 환경 을 설정 할 수 있 습 니 다. 이 메커니즘 은 MyBatis 가 다양한 데이터베이스 에 SQL 맵 을 적용 할 수 있 습 니 다.
메모: 여러 환경 을 설정 할 수 있 지만 SqlSession Factory 인 스 턴 스 마다 하나의 환경 만 선택 할 수 있 습 니 다.따라서 두 개의 데이터 베 이 스 를 연결 하려 면 두 개의 SqlSession Factory 인 스 턴 스 를 만들어 야 합 니 다.
앞의 설정 내용 은 다음 과 같 습 니 다.
1
2 default="mysql">
3 mysql">
4
5 JDBC">
6
7 POOLED">
8 driver" value="com.mysql.jdbc.Driver">
9 url" value="jdbc:mysql://127.0.0.1:3306/mybatis?useUnicode=true&characterEncoding=UTF-8">
10 username" value="root">
11 password" value="****">
12
13
14
기본 환경 ID (default = "mysql").
모든 environment 요소 가 정의 하 는 환경 ID (id = "my sql").
트 랜 잭 션 관리자 설정 (type = "JDBC").
데이터 원본 설정 (type = "POOLED").
환경 ID 는 이름 을 마음대로 지 을 수 있 습 니 다. 기본 환경 ID 는 정 의 된 환경 ID 와 일치 해 야 합 니 다.
1. databaseIDProvider 데이터베이스 제조 업 체 표지
2. mappers 매 핑 기
MyBatis 는 SQL 문 구 를 직접 써 야 합 니 다. mapper 맵 기 설정 은 MyBatis 가 맵 파일 을 찾 는 곳 을 알려 주 고 이 SQL 문 구 를 찾 습 니 다.
1
2
3 mapping/UserMapper.xml">
4
이상 은 MyBatis 의 구조 와 프로필 기록 입 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.