Ce tutoriel est plus pratique. Les programmeurs ajoutent directement du code de copie à leurs propres projets et peuvent l'utiliser en le modifiant et en le modifiant. Cependant, Springboot et Mybatis ne sont pas présentés ici. Si des lecteurs veulent savoir, ils peuvent me laisser un message et continuer à faire attention. Je vais le mettre à jour lentement à l'avenir. (Section du code Black Area, le téléphone Android peut glisser manuellement à gauche pour afficher tous les codes)
En fait, l'intégration est très simple. Si vous utilisez Gradle, ajoutez-le dans le fichier build.gradle.
compiler ('org.mybatis.spring.boot: mybatis-spring-boot-starter: 1.3.1')Si vous utilisez maven, ajoutez-le dans le fichier pom.xml
Configuration de bibliothèque unique:
Après l'introduction, par défaut, Spring Boot configurera automatiquement une source de données pour nous, qui recherchera le chemin de classe pour les packages JAR de H2, HSQLDB et autres dans les bases de données de mémoire. S'il est trouvé, il configurera automatiquement une source de données pour la base de données de mémoire.
Si les paramètres de configuration pertinents de spring.datasource.* Sont spécifiés dans Application.yml ou application.property , Spring Boot utilisera cette configuration pour créer une source de données.
Ensuite, le SQLSessionFactoryBean et SQLSessionTemplate à l'aide de la source de données seront automatiquement créés. Vos mappeurs seront automatiquement numérisés, connectés à SQLSessionTemplate et inscrits dans le contexte de printemps.
printemps.datasource.url = jdbc: mysql: // localhost / test printemps.datasource.username = dbuser spring.datasource.password = dbpass printemps.datasource.driver-class-name = com.mysql.jdbc.driverce
Pour plus de paramètres, veuillez consulter DataSourceProperties
Configuration multiples de bibliothèque:
En raison des besoins de l'entreprise, le projet doit utiliser plusieurs bases de données pour le développement des entreprises en même temps:
Tout d'abord, nous devons personnaliser la configuration de deux sources de données dans Application.Property, l'une utilise d'abord.datasource. * Et l'autre utilise second.datasource. *. Afin de laisser les autres voir quelle bibliothèque est connectée en un coup d'œil, vous pouvez utiliser la dénomination de la base de données. Par exemple, la bibliothèque d'utilisateurs, et vous pouvez utiliser user.datasource. *. Lorsque vous utilisez plusieurs sources de données, toutes les configurations nécessaires ne peuvent pas être omises.
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 j'utilise Druid aussi, vous ne pouvez pas ajouter la valeur par défaut 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
Je télécharge directement le code, mon approche consiste à créer deux sources de données avec deux classes de configuration:
@ Configuration @ MAPPERSCAN (BASEPACKAGES = {"com.user.server.dao"}, sqlSessionTemplateref = "UsersQlSessionTemplate") classe publique UsermyBatiSConfig {@Bean (name = "UserDatasource") @primary // Cette annotation doit être ajoutée, sinon une erreur sera signalée. La classe suivante n'a pas besoin d'ajouter @configurationproperties (prefix = "first.datasource") // La valeur de préfixe doit être le préfixe de la propriété correspondante dans application.properteis public dataSource userDataSource () {return dataSourceBuilder.create (). Build (); } @Bean public sqlSessionFactory UsersQSessionFactory (@qualifier ("userDataSource") DataSource DataSource) lève une exception {sqlSessionFactoryBean Bean = new SQLSessionFactoryBean (); bean.setDataSource (dataSource); // Ajouter le répertoire XML ResourcePatterNResolver Resolver = new PathMatchingResourcePatterNResolver (); essayez {bean.setMapperLocations (résolver.getResources ("classpath *: com / user / server / dao / mapping / *. xml")); return bean.getObject (); } catch (exception e) {e.printStackTrace (); Jetez une nouvelle RuntimeException (E); }} @Bean public sqlSessionTemplate UsersQhSessionTemplate (@Qualifier ("UsersQlSessionFactory") SQLSessionFactory SQLSessionFactory) lève une exception {SQLSessionTemplate Template = new SQLSessionTemplate (SQLSessionFactory); // Utilisez l'usine configurée ci-dessus pour retourner le modèle; }} @ Configuration @ mapperscan (basepackages = {"com.airmi.server.dao"}, sqlSessionTemplateref = "AutoteStsSQLSessionTemplate") public classe AutotestmyBaticAconfig {@Bean @configurationProperties (preFix = "Autotest.Datasource") PublicPeties (PreFix = "AutoTest.Datasource") PublicPeties (PreFix = "Autotest.Datasource") autoteStDataSource () {return dataSourceBuilder.create (). build (); } @Bean public SqlSessionTemplate AutoteSTSQLSessionTemplate (@Qualifier ("AutoteSTSQLSessionFactory") SqlSessionFactory SqlSessionFactory) lève exception {sqlSessionTemplate template = new sqlSessionmplate (sqlSessionFactory); modèle de retour; } @Bean Public SqlSessionFactory AutoTestSQLSessionFactory (@qualifier ("AutotestDataSource") DataSource DataSource) lève une exception {SQLSessionFactoryBean Bean = new SqlSessionFactoryBean (); bean.setDataSource (dataSource); // Ajouter le répertoire XML ResourcePatterNResolver Resolver = new PathMatchingResourcePatterNResolver (); essayez {bean.setMapperLocations (résolver.getResources ("classpath *: com / Airmi / server / dao / mapping / *. xml")); return bean.getObject (); } catch (exception e) {e.printStackTrace (); Jetez une nouvelle RuntimeException (E); }}}@Primary // Cette annotation signifie que lorsqu'il existe plusieurs classes d'implémentation à injecter dans la même interface, il n'est pas nécessaire de permettre à l'annotation automatique de signaler une erreur. Le site officiel exige que lorsque plusieurs sources de données, une source de données doit être spécifiée et une autre source de données n'a pas besoin d'être ajoutée.
@Qualifier l'injection par nom est généralement injectée dans un cas avec plusieurs types (par exemple, il existe plusieurs instances de type de source de données).
@Mapperscan (basepackages = {"com.user.server.dao"}, sqlSessionTemplateref = "UsersQlSessionTemplate") BasEpackages est le package où le mappeur est situé, l'instance à laquelle SQLSESSESSESSEMPELATEREF est à référence.La structure du code utilisateur est la suivante:
Résumer
Ce qui précède est la méthode d'implémentation de Spring Boot intégrant MyBatis à l'aide de plusieurs sources de données introduites par l'éditeur. J'espère que ce sera utile à tout le monde. Si vous avez des questions, veuillez me laisser un message et l'éditeur répondra à tout le monde à temps. Merci beaucoup pour votre soutien au site Web Wulin.com!