이 튜토리얼은 더 실용적입니다. 프로그래머는 자신의 프로젝트에 복사 코드를 직접 추가하여 간단히 수정하고 수정하여 사용할 수 있습니다. 그러나 SpringBoot와 Mybatis는 여기에 소개되지 않습니다. 어떤 독자가 알고 싶어한다면, 그들은 나에게 메시지를 남기고 계속주의를 기울일 수 있습니다. 앞으로 천천히 업데이트하겠습니다. (흑인 지역 코드 섹션, Android 폰은 모든 코드를보기 위해 수동으로 왼쪽으로 스 와이프 할 수 있습니다)
실제로 통합은 매우 간단합니다. Gradle을 사용하는 경우 Build.gradle 파일에 추가하십시오.
컴파일 ( 'org.mybatis.spring.boot : mybatis-spring-boot-starter : 1.3.1')
Maven을 사용하는 경우 pom.xml 파일에 추가하십시오.
단일 라이브러리 구성 :
소개 후 기본적으로 Spring Boot는 데이터 소스를 자동으로 구성하여 H2, HSQLDB 및 기타 메모리 데이터베이스의 JAR 패키지에 대한 클래스 경로를 검색합니다. 발견되면 메모리 데이터베이스의 데이터 소스를 자동으로 구성합니다.
spring.datasource.* 의 관련 구성 매개 변수가 application.yml 또는 application.property 에 지정된 경우 Spring Boot는이 구성을 사용하여 데이터 소스를 만듭니다.
그런 다음 DataSource를 사용한 SQLSESSIONFACTORYBEAN 및 SQLSESSIONTEMPLATE가 자동으로 작성됩니다. 매퍼는 자동으로 스캔되고 SqlSessionTemplate에 연결되며 스프링 컨텍스트에 등록됩니다.
spring.datasource.url = jdbc : mysql : // localhost/test spring.datasource.username = dbuser spring.datasource.password = dbpass spring.datasource.driver class-name = com.mysql.jdbc.driver
더 많은 매개 변수는 DataSourceProperties를 참조하십시오
멀티 라이브러리 구성 :
비즈니스 요구로 인해 프로젝트는 비즈니스 개발에 동시에 여러 데이터베이스를 사용해야합니다.
먼저 Application.Property에서 두 개의 데이터 소스 구성을 사용자 정의해야합니다. 하나는 먼저 사용하고 다른 하나는 Second.datasource를 사용합니다.*. 다른 사람들이 어떤 라이브러리가 연결되어 있는지 알 수 있도록 데이터베이스 이름 지정을 사용할 수 있습니다. 예를 들어, 사용자 라이브러리는 user.datasource를 사용할 수 있습니다.*. 여러 데이터 소스를 사용하는 경우 필요한 모든 구성을 생략 할 수 없습니다.
First.datasource.url = jdbc : mysql : //localhost/firstfirst.datasource.username=dbuser1first.datasource.password=dbpass1fi rst.datasource.driver-class-name = com.mysql.jdbc.driverfirst.datasource.type = com.alibaba.druid.pool.druiddatasource // i Druid를 사용하고 있으며 기본값을 추가 할 수 없습니다. 두 번째 .datasource.url = jdbc : mysql : //localhost/secondsecond.datasource.username=dbuser2second.datasource.password=dbpa ss2second.datasource.driver-class-name = com.mysql.jdbc.driverse.datasource.type = com.alibaba.druid.pool.druiddatasource
코드를 직접 업로드하면 접근 방식은 두 개의 구성 클래스를 사용하여 두 개의 데이터 소스를 만드는 것입니다.
@configuration @mapperscan (basepackages = { "com.user.server.dao"}, sqlsessiontemplateref = "userqlsessiontemplate") public class usermybatisconfig {@bean (name = "userdatasource") @primary //이 오류가 추가되어야합니다. 다음 클래스는 @configurationProperties (prefix = "first.datasource")를 추가 할 필요가 없습니다. // 접두사 값은 응용 프로그램에서 해당 속성의 접두사 여야합니다 .Properteis public dataSource userDatasource () {return dataSourceBuilder.create (). build (); } @Bean public sqlsessionFactory userQlSessionFactory (@Qualifier ( "userDatAsource") DataSource DataSource) 예외 {sqlsessionFactoryBean Bean = new SqlSessionFactoryBean (); Bean.SetDatasource (DataSource); // XML 디렉토리 추가 자료 자료 resolver resolver = new PathMatchingResourcepatternresolver (); try {bean.setmapperlocations (resolver.getResources ( "classPath*: com/user/server/dao/맵핑/*. xml"); return bean.getObject (); } catch (예외 e) {e.printstacktrace (); 새로운 runtimeexception (e)을 던지십시오. }} @bean public sqlsessiontemplate userqlsessiontemplate (@qualifier ( "userqlsessionfactory") sqlsessionfactory sqlsessionfactory) 예외 {sqlsessiontemplate 템플릿 = new sqlsessiontemplate (sqlsessionTemplate); // 위의 공장을 사용하여 템플릿을 반환합니다. }}} @configuration @mapperscan (basePackages = { "com.airmi.server.dao"}, sqlsessiontemplateref = "autotestsqlsessiontemplate") public class autoTestmyBatisconfig {@bean @configurationProperTies (prepotes =)) AutoTestDatasource () {return dataSourceBuilder.create (). build (); } @bean public sqlsessiontemplate AutotestSqlsessionTemplate (@qualifier ( "autotestSqlsessionFactory") sqlSessionFactory sqlsessionFactory) 예외 {sqlsessionTemplate template = new sqlsessionTemplate (sqlsessionTemplate); 리턴 템플릿; } @Bean public sqlsessionFactory AutotestSqlSessionFactory (@Qualifier ( "AutotestDatasource") DataSource DataSource) 예외 {sqlsessionCactoryBean bean = new SqlSessionCeptoryBean (); Bean.SetDatasource (DataSource); // XML 디렉토리 추가 자료 자료 resolver resolver = new PathMatchingResourcepatternresolver (); try {bean.setmapperlocations (resolver.getResources ( "classpath*: com/airmi/server/dao/mapping/*. xml")); return bean.getObject (); } catch (예외 e) {e.printstacktrace (); 새로운 runtimeexception (e)을 던지십시오. }}}@Primary //이 주석은 동일한 인터페이스에 주입 할 여러 구현 클래스가있을 때 Autowire 주석이 오류를보고 할 필요가 없음을 의미합니다. 공식 웹 사이트에서는 여러 데이터 소스가 있으면 하나의 데이터 소스를 지정해야하며 다른 데이터 소스를 추가 할 필요가 없습니다.
이름 별 @Qualifier Injection은 일반적으로 여러 유형의 한 인스턴스에 주입됩니다 (예 : 여러 데이터 소스 유형의 인스턴스가 있습니다).
@MappersCan (BasePackages = { "com.user.server.dao"}, sqlsessiontemplateref = "userqlsessiontemplate") BasePackages는 Mapper가 위치한 패키지, sqlsessiontemplateref 인 인스턴스입니다.사용자 코드 구조는 다음과 같습니다.
요약
위의 것은 편집기가 소개 한 여러 데이터 소스를 사용하여 mybatis를 통합하는 Spring Boot의 구현 방법입니다. 모든 사람에게 도움이되기를 바랍니다. 궁금한 점이 있으면 메시지를 남겨 주시면 편집자가 제 시간에 모든 사람에게 답장을 드리겠습니다. Wulin.com 웹 사이트를 지원해 주셔서 대단히 감사합니다!