중화사전망 - 자전 검색 - Mybatis 는 두 데이터베이스와 어떻게 호환됩니까?
Mybatis 는 두 데이터베이스와 어떻게 호환됩니까?
문제 분석:
1. ibatis 다중 데이터베이스 호환성 문제를 해결하기 위해 ibatis 는 실제로 다른 데이터베이스의 sqlmap 구성 파일을 자동으로 선택할 수 있습니다.
2. ibatis 소스 코드 프로젝트를 열고 코드를 추적하여 com 에서 찾습니다. Ibatis.sqlmap.engine.builder.xml.sqlmapconfigparser.java. 시스템에서 실행 중인 모든 sqlmap 노드가 여기에서 균일하게 변환 및 로드됩니다.
3. 분명히 SqlMapConfigParser 소스 코드의 addSqlMapNodelets 는' /sqlMapConfig/sqlMap' 경로, 즉 sqlMap 파일 경로를 구문 분석합니다.
4.' 다중 데이터베이스 호환성' 을 실현하려면 여기서 이 방법을 변환하기만 하면 됩니다.
솔루션:
1, 우선 우리가 있습니다
2. SqlMapConfigParser 용 addSqlMapNodelets 메소드를 재구성합니다.
"1) 단일 sqlmap 파일 위치 (예: sqlmap 홈 디렉토리 ₩ xxx.xml) 를 가져오는 것이 좋습니다
2) 위에서 설정한 DBProductName 속성 값에 따라 데이터베이스 유형을 가져옵니다.
3) sqlmap 의 파일 경로를 실행 중인 데이터베이스 유형 파일로 재배치합니다. 예를 들어 sqlmap 홈 디렉토리 ₩ \mysql\XXX.xml 은 프로그램이 현재 msql 데이터베이스에서 실행 중이며 시스템의 MySQL 데이터베이스에 해당하는 sqlmap 파일이 로드되었음을 나타냅니다. ""
이제 ibatis 는 "다중 데이터베이스 호환성" 을 지원합니다 (전체 소스 코드는 첨부 파일 참조).
사용 방법:
1. SqlMapConfigParser.class 에서 생성된 실행 파일 SqlMapConfigParser.class (첨부 참조) 를 컴파일하고 덮어쓰기 파일을 ibatis.jar 에 추가합니다
2. 스토리지 시스템 sqlmap 구성 파일의 홈 디렉토리에 다중 데이터베이스 호환 지원 하위 디렉토리 (예: src\conf\mapping (예: src \ conf \ mapping \ MySQL, src \ conf \) 를 추가합니다
3. 실제 프로젝트 요구에 따라 복수 데이터베이스 sqlmap 프로파일을 작성합니다. 주: 데이터베이스 유형에 따라 sqlmap 구성 파일 이름과 SQL 노드 이름이 같은지 확인해야 합니다.
4. ibatis 마스터 구성 파일 (예: sql-map-config.xml) 에서 "setting & gt 는 현재 프로그램이 실행 중인 데이터베이스 유형을 지정합니다.