계속 만들고 성장을 가속화하십시오! "너겟 데일리 뉴플랜 · 6월 업데이트 챌린지" 참여 12일차 입니다 . 이벤트 상세보기 클릭
배경
- mybatis가 어떻게 작동하는지 이해하는 데 도움이 되도록 mybatis3의 기능 모듈을 기록하십시오.
프로세스
- 소스 모듈 표시
- 주석
일반적으로 사용되는 @Select, @Insert, @Update, @Delete 및 기타 여러 주석과 같은 주석. 사용법은 리플렉션의 지식을 사용하여 클래스의 메타 정보를 얻은 다음 정의된 규칙에 따라 단계별로 분석하는 것입니다. 2. 바인딩(매우 중요한 모듈) 은 매퍼 인터페이스에 해당하는 매퍼 프록시 클래스를 생성하며 statementId를 통해 얻을 수 있습니다. 각 매퍼 파일에는 해당 매퍼 프록시 클래스가 있습니다. MapperProxyFactory는 Mapper 인터페이스 파일에 해당하는 MapperProxy를 생성하여 구성 정보의 일부로 MapperRegistry에 넣음으로써 statementId를 통해 컨테이너에서 가져올 수 있도록 합니다. mapper.xml 파일 그 중 MapperMethod에서 실행 메소드는 SQL을 실행하기 위한 모든 상위 레벨 항목인 매우 핵심입니다. 3. 빌더
는 xml 파일의 컨텐츠를 빌드합니다. xml 파일에 있는 노드를 하나씩 읽어와서 자바 빈으로 빌드하면 get 메소드를 통해 직접 얻을 수 있어 편리하다. 4. 캐시 캐시, mybatis 캐시는 맵 컨테이너에 저장되며, 이 모듈은 캐시 키의 계산 과정을 제공합니다. 5. 커서 커서, 포인터. 관계형 데이터베이스를 쿼리하는 방법입니다. 6. 데이터 소스, 데이터베이스 소스, 풀링된 데이터 소스 및 풀링되지 않은 데이터 소스. 사용자 이름, 비밀번호, URL, 드라이버 등과 같은 몇 가지 기본 정보만 포함합니다. 7. 예외, mybatis의 예외 처리 클래스. 8. 실행기, 매우 핵심적인 기능의
SQL 실행기. 데이터베이스와 상호 작용하고 매개 변수 준비를 전에 실행하고 나중에 결과 집합 처리를 실행하는 문입니다. 9. io, 리소스 기능 모듈, 파일 읽기 10. jdbc, 테스트에 사용되는 기본 작업 데이터베이스, 실제로 다른 핵심 소스 코드는 이 패키지 아래의 클래스를 사용하지 않습니다.
11. 로깅, 로그 모듈 12. 매핑 , 핵심 모듈
MappedStatement는 매우 중요한 클래스입니다. 많은 메타데이터 정보를 포함합니다. 매퍼 인터페이스와 mapper.xml 파일은 MappedStatement 인스턴스를 생성합니다. 13. parsing, XPathParser, XNode는 xml 구성 파일을 구문 분석하기 위한 기본 클래스를 제공합니다. 14. 플러그인 은 mybatis의 기능을 확장합니다. 예를 들어 페이징 쿼리는 mybatis 플러그인의 작동 원리를 사용하는 것입니다. 15. 리플렉션, jdk 16. 스크립팅에 기반한 리플렉션 기능 강화, xml 파일 및 SQL
17. 세션, 핵심 기능 패키지의 태그를 처리합니다.
SqlSessionFactoryBuilder는 SqlSessionFactory를 빌드한 다음 SqlSessionFactory 인스턴스에서 SqlSession 인스턴스를 빌드합니다. 마지막으로 sqlSession 인스턴스는 관계형 데이터베이스와 상호 작용합니다. 18. 트랜잭션 , 관계형 데이터베이스 트랜잭션 관리. 일반적인 사용 프로세스는 트랜잭션 관리를 위해 Spring으로 이관됩니다.
거래 조작. 제출하다. 롤백. 19. 타입
이 관계형 데이터베이스와 상호작용할 때 매개변수 설정은 어떻게 자바 타입을 jdbc 타입으로 변환하는가?
요약
-
mybatis의 소스 코드를 읽고 작업 프로젝트를 이해한 후 녹음을 통해 mybaits에 대한 친숙도와 이해를 심화하십시오.
-
위에 기록된 기능 모듈을 통해 mybatis의 작업 과정을 직렬로 연결할 수 있습니다.
-
작업 프로세스를 이해하고 문제가 있는 경우 문제가 발생한 특정 링크를 이해하고 문제를 신속하게 해결하는 데 도움을 줄 수 있습니다.