J'ai récemment appris Java et j'ai découvert que MyBatis apparaît assez fréquemment dans le recrutement Java, qui peut être le cadre ORM de base de données qui est utilisé plus fréquemment dans le développement de Java. J'allais donc étudier l'intégration de Spring Boot et Mybatis.
1. Ajouter la configuration suivante dans le fichier pom.xml
<Dependances> <Dependency> <GroupId> org.springFramework.boot </rom grouped> <Artifactid> printemps-boot-starter-web </retifactid> </dependency> <pedidency> <proupId> org.springframework.boot </proupId> <Artifactid> Spring-Boot-starter-test </letifactive> <scope> SPOPET> SPOPET> Boot-starter-test </partifactive> <scope> SCOPETE> SPOPET> </Dependency> <Dedency> <GroupId> org.springframework.boot </rombandid> <Artifactid> printemps-boot-starter-jdbc </retifactid> </dependency> <dependency> <proupId> mysql </proupId> <Artifactid> mysql-connector-java </ artifactid> <scope> </ccope> </ccope> <dependency> <proupId> com.alibaba </rom grouped> <Artifactid> druid </letifactid> <DERVIÈRE> 1.0.29 </DERNIFRIGNE> </DENDENCENCE> <Dendency> <ProupID> org.springframework.boot </proupId> <Artifactid> Spring-Boot-starter-data-jpa </letifactive> </ dépendance> <! Dépendance mybatis. Vous ne pouvez pas l'utiliser sans l'ajouter -> <dependency> <proupId> org.mybatis.spring.boot </proupId> <Artefactive> Mybatis-Spring-Boot-starter </ artifactid> <version> 1.3.2 </-version> </dependency> <! - Il s'agit d'une dépendance qui génère automatique <GroupId> org.mybatis.Generator </proupId> <ErtifactId> Mybatis-Generator </ ArtifactId> <DERNÉRATEUR> 1.3.5 </DERNIERDE> <TYPE> POM </TYPE> </DENDENCED> <! - Il s'agit d'une dépendance qui génère automatiquement des caractéristiques, etc., et doit être ajoutée https://mvnrepository.com/artifact/org.mybatis.generator/mybatis-generator-core -> <dependency> <proupId> org.mybatis.generator </rompuprid> <ErtulfactId> Mybatis-Generator-Core </ ArtifactId> <version> 1.3.5 </ version> <frequence> <flugins> <harin> <proupId> org.springframework.boot </prôdId> <ArtifActid> printemps-boot-maven-plugin </ artifactid> </glugin> <plugin> <proupId> org.mybatis.generator </proupId> <Artifactid> mybatis-generator-maven-plugin </ artifactid> mybatis-generator-maven-plugin </ artifactid> <version> 1.3.2 </ version> <In configuration> <! - Adresse pour le fichier de configuration -> <! - <FIFIGIGURATIONFILE> SRC / MAIN / RESSOURCE / MYBATIS GENERATOR / GeneratorConfig.xml </ ConfigurationFile> -> <Verbose> True </ Verbose> <Crowrite> True </ Ralsewrite> </ Configuration> </granking>
2. Configurer la base de données et la numérisation MyBatis dans l'application.Properties Fichier de configuration
printemps.datasource.driver-class-name = com.mysql.jdbc.driverspring.datasource.url = jdbc: mysql: // localhost: 3306 / yddy? useunicode = true & worseencodin g = utf-8 & servertimeZone = utcspring.datasource.username = rootspring.datasource.password = 123456mybatis.config-locations = classpath: mybatis-config.xml # Fichier de mappeur mybatis.mapper-Locations = ClassPath: Mapper / *. Xml #Write * directement ici, ce qui est bénéfique pour SQL personnalisé et écrivant xxxExt.xml plus tard. Il analyse automatiquement ces fichiers. Il n'est pas nécessaire de modifier la configuration mybatis.type-aliases-package = com.dameiweb.learn.modellogging.level.com.dameiweb.learn.dao = debug # mybatis.config = Mybatis Configuration Fichier Nom # mybatis.mapperLocations = Mapper xml Fichier Adresse # MyBatis.typeAlpack = Mapper xml Fichier Adresse # MyBatis.typeAlSespack = Mapper Xml Fichier Adresse # MyBatis.typeAlSespack = Mapper Xml Fichier Adresse # MyBatis.typeAlSespack = Mapper Xml Fichier Adresse # MYBATIS Path # mybatis.typehandlerspackage = Type Handlers Processers Package Package # mybatis.check-config-location = Vérifiez MyBatis si la configuration existe, il est généralement nommé MyBatis-Config.xml # MyBatis.ExecutOrTyPype = Mode d'exécution. La valeur par défaut est simple
3. Configuration MyBatis et configuration de mapper automatique
Créez un nouveau générateurconfig.xml et mybatis-config.xml dans le répertoire des ressources. Le contenu est le suivant:
GeneratorConfig.xml Contenu
<? xml version = "1.0" Encoding = "UTF-8"?> <! Doctype GeneratorConfiguration public "- // Mybatis.org//dtd Mybatis Generator Configuration 1.0 // en" "http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd"> <GeneratorConcure> <classpathentry location = "c: /users/nick/.m2/repository/mysql/mysql-connector-java/5.1.46/mysql-connector-java-5.1.46.jar" /> < value = "true" /> <propriété name = "suppressallcomments" value = "true" /> </ commentgenerator> <! - Database lien adress compte mot de passe -> <jdbcconnection driverclass = "com.mysql.jdbc.driver" connectionUrl = "jdbc: mysql: // localhost: 3306 / yddy? useunicode = true & caractotolcoding = utf-8 & servertimeZone = utc" userId = "root" password = "123456"> </ jdbcconnection> <javatypereSolver> </ javatyperesolver> <! - Générer l'emplacement de stockage des classes de modèle -> <javamodelgenerator targetpackage = "com.dameiweb.learn.model" cibleProject = "src / main / java"> <propriété name = "activebpackages" value " name = "TrimStrings" value = "false" /> </ javamodeLegenerator> <! - Générer l'emplacement du stockage de fichiers de carte -> <SqlMapGenerator TargetPackage = "MAPPER" TargetProject = "Src / Main / Resources"> <Problème Name = "LEABLESBPACKAGES" Générer un code de code facile à utiliser = "AnnotatedMapper", générer un modèle Java et un objet de mappeur basé sur l'annotation Type = "mixtesmapper", générer un modèle Java basé sur l'annotation et un objet de mappeur correspondant type = "xmlmapper", générer des fichiers xml SQLMAP et une interface de mapper " TargetPackage = "com.dameiweb.learn.dao" cibleProject = "src / main / java"> <propriété name = "ActiveBpackages" value = "true" /> </ javaclientGenerator> </ context> </ generatorconfiguration>
Contenu de Mybatis-Config.xml:
<? xml version = "1.0" Encoding = "utf-8"?> <! Doctype Configuration public "- // mybatis.org//dtd config 3.0 // en" "http://mybatis.org/dtd/mybatis-3-config.dtd"> <configuration> <paramètres> value = "true" /> <setting name = "cacheenabled" value = "true" /> <setting name = "lazylokingEnabled" value = "true" /> <paraming name = "agressivelazyloking" value = "true" /> <sefit name = "multiplereSultsEtSeabled" value = "true" /> <paraming name = "usecolnumy Value = "false" /> <paraming name = "AutomAppingBehavior" value = "partial" /> <paraming name = "DefaultExeCutOrType" value = "Simple" /> <paraming name = "MapundersCoretoCameCase" value = "True" /> <setting name = "localCachescope" value = "session" /> <paramètres = "jdbcTypeFornull" Value = "Null" / </ Setting Name = "jdbcTypeFornull" <tycias alias = "Integer" type = "java.lang.integer" /> <tycias alias = "long" type = "java.lang.long" /> <tycias alias = "hashmap" type = "java.util.hashmap" /> <typealias alias = "liendhashmap" type = "java.uLink <typealias alias = "arrayList" type = "java.util.arraylist" /> <typalias alias = "linkedlist" type = "java.util.linkedlist" /> </pactEALIASS> </ configuration>
De cette façon, nous avons configuré Spring Boot, Mybatis et Mybatis pour générer automatiquement des carton et des entités. De cette façon, lorsque nous voulons générer l'entité et le mappeur d'une certaine table, nous n'avons qu'à ajouter le contenu suivant après la balise JavaclientGenerator dans GeneratorConfig.xml.
Ici, nous avons le tableau YD_Movies comme exemple (n'utilisez pas les numéros pluriels dans le nom de la table de base de données principale. Ce nom de table doit être mon cerveau avant, j'ai donc fait un nom pluriel)
<! - Générer le nom de table et la classe correspondante -> <table tablename = "yd_movies" domainobjectname = "film" iactiveCountByExample = "false" activerupdateByExample = "false" ENableDeleByExample = "false" activeryelectByExample = "false" javatype = "java.lang.string" jdbcType = "varchar" /> <columnoverride chronny = "cover_photos_loc" javatype = "java.lang.string" jdbcType = "varchar" /> <ColumnOverride Column = "pubdates" javatype = "Java.Lang.string" JDBCTYPE = "VARCHAR" /> <ColumnOverride Column = "Photographs_origin" javatype = "java.lang.string" JDBCTYPE = "VARCHAR" /> <ColumnOverride Column = "Photographs_origin_loc" Javatype = "Java.Lang.string" JDBCTYPE = "VARCHAR Column = "Languages" javatype = "java.lang.string" jdbcType = "varchar" /> <columnOverride Column = "Awards" javatype = "java.lang.string" jdbcType = "varchar" /> <ColumnOverride Column = "Summer" Javatype = "Java.Lang.String" JDBCTYPE = "VARCHAR" /> </ Table> <! - ColumnOverride utilise cette balise pour empêcher MyBatis de générer des fichiers xxxxwithblobs lorsque le type de champ de base de données est du texte. ->
Cliquez ensuite sur les projets Maven sur le côté droit de l'idée, et vous pouvez voir MyBatis-Generate: Générer sous Mybatis-Genener et double-cliquez sur MyBatis-Generener: Générer.
** Remarque du générateur, on peut également dire qu'il s'agit d'un bogue
C'est quand il est généré, et dans la deuxième génération, DAO et l'entité seront directement écrasés, tandis que Mappel.xml sera directement annexé, entraînant une erreur dans la course et il est difficile à trouver. **
4.Mybatis personnalisé SQL
Lorsque nous devons personnaliser SQL, nous ne pouvons pas les placer également dans le fichier de mappeur. Sinon, lorsque les champs de la table de base de données sont mis à jour et doivent être régénérés, notre SQL personnalisé sera-t-il écrasé? Nous devons donc créer un nouveau fichier movimapperext.xml dans le répertoire de MovieMapper.xml et mettre le SQL personnalisé ici. L'exemple est le suivant:
Contenu de fichier movimapperext.xml
<? xml version = "1.0" Encoding = "UTF-8"?> <! Doctype Mappep Public "- // Mybatis.org//dtd Mappen 3.0 // en" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace = "com.dmeiweb.learn.dao.moviemapper"> <select id = "selectByCondition" resultMap = "BaseresultMap" ParameterType = "com.dmeiweb.learn.dto.movilierequest"> Sélectionner YD_Movies. yd_movies.id = yd_r_movie_countries.movie_id gauche join yd_countries cou sur yd_r_movie_counntries.country_id = cou.id gauche join yd_r_movie_category sur yd_movies.id = yd_r_movie_category.movie_id Left join = yd_r_movie_category.movie_id Left Rejoint YD_CATEGOR YD_R_MOVIE_CATEGORY.CATECHORY_ID = Cat.id gauche Rejoignez YD_R_MOVIE_ACTOR sur YD_MOVIES.ID = YD_R_MOVIE_ACTOR.MOVIE_ID LEUT JOY ! = null "> et yd_movies.title comme"% "# {momiierequest.title}"% "</ if> <if test =" movierequest.country! = null "> et cou.id = # {movierequest.country} </f> <if test =" momierest.category! = null "> et cat.id = # {momiierequest.category} </ if> <if test = "momiierequest.year! = null"> et an = # {momiierequest.year} </ if> <if test = "momiierest.rate! = null"> and rate> = # {movilierest.rate} </f> <if Test = "Movionquest.Rate! = null" <(# {momiieRequest.Rate} +1) </ if> <if test = "moviserequest.subtype! = null"> et yd_movies.subtype = # {Movierequest.Subtype} </ if> Group by yd_movies.id Order by theday_at dec, année </lect>Résumer
Ce qui précède est le démarrage de printemps présenté par l'éditeur. Il intègre MyBatis et génère automatiquement des cartouches et des entités. 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!