Dieses Tutorial ist praktischer. Programmierer fügt ihren eigenen Projekten direkt Kopiencode hinzu und kann ihn verwenden, indem sie einfach geändert und geändert werden. Springboot und MyBatis werden hier jedoch nicht vorgestellt. Wenn eine Leser wissen möchten, können sie mir eine Nachricht hinterlassen und weiterhin aufmerksam sind. Ich werde es in Zukunft langsam aktualisieren. (Schwarzer Vorwahlabschnitt, Android Phone kann manuell nach links wischen, um alle Codes anzuzeigen.)
Tatsächlich ist die Integration sehr einfach. Wenn Sie Gradle verwenden, fügen Sie es in die Datei "Build.gradle" hinzu.
compile ('org.mybatis.spring.boot: mybatis-pring-boot-starter: 1.3.1')Wenn Sie Maven verwenden, fügen Sie es in die Datei pom.xml hinzu
Einzelbibliothekskonfiguration:
Nach der Einführung konfiguriert Spring Boot standardmäßig eine Datenquelle für uns automatisch, die nach dem Klassenpfad für JAR -Pakete von H2, HSQLDB und anderen in Speicherdatenbanken sucht. Wenn gefunden, konfiguriert es automatisch eine Datenquelle für die Speicherdatenbank.
Wenn die relevanten Konfigurationsparameter von spring.datasource.* In application.yml oder application.property angegeben werden, verwendet Spring Boot diese Konfiguration, um eine Datenquelle zu erstellen.
Anschließend wird die SQLSessionFactoryBean und SQLSessionTemplate mithilfe der DataSource automatisch erstellt. Ihre Mapper werden automatisch gescannt, mit SQLSessionTemplate verbunden und im Frühlingskontext registriert.
Spring.DataSource.url = jdbc: mysql: // localhost/test spring.datasource.username = dbuser Spring.datasource.password = dbpass spring.datasource.driver-class-name = com.mysql.jdbc.driver
Weitere Parameter finden Sie unter DataSourceProperties
Multi-Bibliothek-Konfiguration:
Aufgrund der geschäftlichen Anforderungen muss das Projekt gleichzeitig mehrere Datenbanken für die Geschäftsentwicklung verwenden:
Zunächst müssen wir die Konfiguration von zwei Datenquellen in application.property anpassen. Um andere zu sehen, welche Bibliothek auf einen Blick verbunden ist, können Sie Datenbank -Benennung verwenden. Zum Beispiel die Benutzerbibliothek und Sie können user.dataSource verwenden.*. Bei Verwendung mehrerer Datenquellen können alle erforderlichen Konfigurationen nicht weggelassen werden.
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 Ich benutze Druid, auch Sie können die Standardeinstellung nicht hinzufügen Second.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
Ich lade den Code direkt hoch, mein Ansatz ist es, zwei Datenquellen mit zwei Konfigurationsklassen zu erstellen:
@Configuration @mapperscan (basepackages = {"com.user.server.dao"}, sqlSessionTemPlateref = "usersQlSessionTemplate") Public Class UsMybatisconfig {@bean (name = "userDataSource") @Primary // Diese Annotation muss berichtet werden. Die nächste Klasse muss @ConfigurationProperties (Präfix = "first.dataSource") // Der Präfixwert nicht das Präfix der entsprechenden Eigenschaft in application.Properteis public DataSource userDataSource () {return DataSourcer.create (). Build () hinzufügen. } @Bean public sqlSessionFactory userQlSessionFactory (@Qualifier ("userDataSource") DataSource -Datenource) löst eine Ausnahme aus {SQLSessionFactoryBean bean = new SQLSessionFactoryBean (); Bean.setDataSource (DataSource); // XML Directory ResourcePergerNresolver Resolver = New PathMatchingResourcePenNResolver (); try {bean.setMapperLocations (Resolver.getResources ("ClassPath*: com/user/server/dao/maping/*. xml")); return bean.getObject (); } catch (Ausnahme e) {e.printstacktrace (); neue runimeexception (e) werfen; }} @Bean public SQLSessionTemplate userQlSessionTemplate (@Qualifier ("usersQlSessionFactory") // Verwenden Sie die oben konfigurierte Fabrik, um Vorlage zurückzugeben. }}@Configuration@MapperScan(basePackages = {"com.airmi.server.dao"}, sqlSessionTemplateRef = "autoTestSqlSessionTemplate") public class AutoTestMybatisConfig { @Bean @ConfigurationProperties(prefix = "autotest.datasource") public DataSource autotestDataSource () {return DataSourcebuilder.create (). Build (); } @Bean public sqlSessionTemplate autotestSQLSessionTemplate (@Qualifier ("autotestSQLSessionFactory") Rückgabevorlage; } @Bean public SQLSessionFactory autotestSQLSessionFactory (@Qualifier ("autotEstDataSource") DataSource -DataSource löst eine Ausnahme aus. Bean.setDataSource (DataSource); // XML Directory ResourcePergerNresolver Resolver = New PathMatchingResourcePenNResolver (); try {bean.setMapperLocations (Resolver.getResources ("ClassPath*: com/airmi/server/dao/maping/*. xml")); return bean.getObject (); } catch (Ausnahme e) {e.printstacktrace (); neue runimeexception (e) werfen; }}}@Primary // Diese Annotation bedeutet, dass bei mehreren Implementierungsklassen die gleiche Schnittstelle injiziert werden müssen, es nicht erforderlich ist, dass die Autowire -Annotation einen Fehler meldet. Die offizielle Website erfordert, dass bei mehreren Datenquellen eine Datenquelle angegeben werden muss und eine andere Datenquelle nicht hinzugefügt werden muss.
@Qualifier Injection per Namen wird normalerweise in einer Instanz mit mehreren Typen injiziert (z. B. gibt es mehrere Instanzen des Datasource -Typs).
@Mapperscan (Basepackages = {"com.user.server.dao"}, sqlSessionTemplateRef = "usersQlSessionTemplate") Basispackages ist das Paket, auf dem sich der Mapper befindet, auf die sich SQLSessionTemPlateReef zu beziehen ist.Die Benutzercodestruktur lautet wie folgt:
Zusammenfassen
Das obige ist die Implementierungsmethode von Spring Boot, die MyBatis unter Verwendung mehrerer vom Editor eingeführter Datenquellen integriert. Ich hoffe, es wird für alle hilfreich sein. Wenn Sie Fragen haben, hinterlassen Sie mir bitte eine Nachricht und der Editor wird allen rechtzeitig antworten. Vielen Dank für Ihre Unterstützung auf der Wulin.com -Website!