introduire:
MyBatis-Plus (MP pour faire court) est un outil d'amélioration MyBatis. Sur la base de MyBatis, il améliore et ne change pas, et naît pour simplifier le développement et améliorer l'efficacité. (Extrait du site officiel de MyBatis-Plus) Bien que Mybatis nous ait donné une grande commodité, il a toujours des lacunes. L'existence de MP est de compenser légèrement les lacunes de Mybatis. Lorsque nous utilisons MyBatis, nous constaterons que chaque fois que nous voulons écrire une logique métier, nous devons écrire une méthode dans la couche Dao, puis correspondre à un SQL. Même si nous interrogeons simplement une condition, nous devons ajouter une nouvelle méthode dans la couche DAO. En réponse à ce problème, MP est un cadre qui combine les avantages de Mybatis et Hibernate. Il fournit la commodité de l'opération de caillé à table unique d'Hibernate tout en conservant les fonctionnalités de MyBatis.
Ce chapitre vous apprend à utiliser MyBatisplus. Si vous souhaitez comprendre en profondeur la façon dont la couche sous-jacente est implémentée, vous pouvez télécharger le code source pour l'interpréter sur le site officiel.
1. Créer un projet
Je n'irai pas étape par étape ici. Je donnerai directement la structure du projet créée. À la fin de ce chapitre, je donnerai l'adresse du code source qui doit être téléchargé.
2. Présenter les dépendances
<? xml version = "1.0" Encoding = "utf-8"?> <project xmlns = "http://maven.apache.org/pom/4.0.0" xmlns: xsi = "http://www.w3.org/2001/xmlschema-instance" XSI: ScheMalocation = "http://maven.apache.org/pom/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelversion> 4.0.0 </ Modelversion> <ProupId> com.chaoqi </prebudId> <ArtefactId> Springboot_MyBatisPlus </Retifactid> <Dersion> 0.0.1-Snapshot </DERNIERSE> <Packaging> Jar </ Packaging> <Name> Springboot_Mybatisplus </name> <description> Demo Project for Spring Boot </ GroupID> <ArtefactId> Spring-Boot-starter-Parent </ ArfactId> <DERVIÈRE> 2.0.0.release </DERNIERS> <RelativePath /> </parent> <Properties> <Project.build.Sourceencoding> UTF-8 </project.build.sourceencoding> <project.reporting.outputencoding> utf-8 </project.reportting.outputencoding> <java.version> 1.8 </java.version> </properties> <dependance> <dependency> <proupId> org.springframework.boot </proupId> </ artifactid> spring-boot-starter-jdbc </ artifactId> Spring-Boot-starter-jdbc </ artifactId>> Spring-boot-starter-jdbc </ artiFactId>> Spring-boot-starter-jdbcc </ artiFactID> <dependency> <proupId> org.springframework.boot </proupId> <Artifactid> printemps-boot-starter-web </ artifactid> </pedigency> <dependency> <proupId> org.mybatis.spring.boot </proupId> <artifactid> </ version> 1.31 </Dependency> <Dedency> <GroupId> MySQL </rom grouped> <ArtifActid> MySQL-Connector-Java </RetifActid> <Cope> Runtime </cope> </Dependency> <Dedency> <ProupId> Org.SpringFramework.boot </proupId> <ArtifActid> Spring-Boot-Starter-Test </ Artifact> <ccope> test </cope> </dependency> <! - Ajouter des dépendances JSP -> <dependency> <proupId> org.springframework.boot </prôdId> <prefactId> printemps-boot-starter-tomcat </ artifactid> </peedency> <dependency> <proupId> org.apache.tomcat.embed </proupdid> <ArtefactId> Tomcat-Embed-Jasper </Retifactid> </ Dependency> <! - Springboot - Mybatis Reverse Engineering -> <Dependency> <ProupId> org.mybatis.Generator </rom groupe> <ArtefactId> Mybatis-Generator-core </ artifactid> <version> 1.3 </30> </Dedency> <! <Dependency> <ProupId> tk.mybatis </rompuprid> <lefactId> mappen-spring-boot-starter </ artifactid> <in version> 1.1.4 </preint> </dependency> </dedence> <uild> <plugrins> <harnigin> <proupId> org.springFramework.boot </prougId> <ArtefactId> Spring-Boot-Maven-Plugin </ Artifactid> </Glugin> <Glugin> <ProupId> org.mybatis.Generator </rolgleId> <Artifactid> MYBATIS-Generator-Maven-Plugin </ Artifactid> <Dersion> 1.3.2 </DERNIER> <IcongurationFile> SRC / Main / Resources / GeneratorConfig.xml </ ConfigurationFile> <Verbose> true </ Verbose> <Cverwrite> true </cventwrite> </ Configuration> <Cecultitions> <IDECUTURES> <ID> Générer MyBatis Artifacts </id> </ Exécution> </cution> Générat </uff </ Execution> <Dependces> <Dedency> <ProupId> org.mybatis.generator </rom grouped> <Artifactid> Mybatis-Generator-core </ artifactid> <version> 1.3.2 </ version> </pedency> <Dependance> <proupId> TK.Mybatis </proupId> <ArtifActid> Maper </Dependency> </Dependency> </ Plugin> </ Plugins> </ Build> </ Project>
3. Edit application.yml
Server: Port: 8080SPRING: MVC: View: prefix: / web-inf / jsp / suffixe: .jsp dataSource: url: jdbc: mysql: // localhost: 3306 / test? CharacterEncoding) com.mysql.jdbc.DrivermyBatis: Mappen-Locations: ClassPath: Mappen / *.
4. Génération inversée de pojo, mappeur
Créer un générateurconfig.xml
<? 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> <Propriétés Resource = "Application.yml" /> <classpathentry location = "d: /mysql/mysql-connector-java-5.1.46/mysql-connector-java-5.1.46.jar" /> < name = "débutDeliter" value = "` "/> <propriété name =" enddeliter "value =" `" /> <propriété name = "javafileencoding" value = "utf-8" /> <plugin type = "Tk.mybatis.mapper.generator.mapperPlugin"> <propriété name = "Mappers" Value = "tk.mybatis.mapper.common.mapper" /> </ plugin> <! - comment -> <commentageraterator> <! - Que ce soit pour générer des commentaires pour les horodatages -> <propriété name = "suppressDate" value = "true" /> <! <! - JDBC Connection -> <jdbcconnection driverclass = "com.mysql.jdbc.driver" ConnectionUrl = "jdbc: mysql: // localhost: 3306 / test? CharacterEncoding = utf-8" userId = "root" mot de passe = "123456"> </jdbcconnection> <! - Generate Trenity Classic <javamodelGenerator TargetPackage = "com.chaoqi.springboot_mybatisplus.dao.domain" TargetProject = "SRC / Main / java" /> <! - Générer un fichier de mappeur xml -> <SqlMapGenerator TargetPackage = "MAPPER" TargetProject = "SRC / Main Ressources" /> <! Client correspondant xml -> <javaclientGenerator TargetPackage = "com.chaoqi.springboot_mybatisplus.dao.mapper" TargetProject = "src / main / java" type = "xmlmapper" /> <! - Configuration de la configuration -> <table TableneName = "%"> <! Column = "id" sqlstatement = "mysql" /> <! - Oracle Configuration -> <! - <généré Column = "id" SqlStation = "SELECT SEQ_ {1} .NextVal à partir de dual" Identity = "false" Type = "Pre" /> -> </ Table> </ Context> </ GeneratorConfiguration>Maven Run Generator
La structure du projet générée est la suivante
5. Intégrer MyBatisplus
Créer une interface de service et une classe d'implémentation de service
package com.chaoqi.springboot_mybatisplus.service; import com.chaoqi.springboot_mybatisplus.dao.domain.musicinfo; import java.util.list; public interface musicinfoservice {public list <musininfo> getMusicinfo ();} Package com.chaoqi.springboot_mybatisplus.service.impl com.chaoqi.springboot_mybatisplus.service.musicinfoservice; import org.springframework.beans.factory.annotation.autowired; import org.springframework.sterereotype.service; import java.util.List; @servicepublic. @Autowired Private MusicInfomapper MusicInfomapper; @Override Public List <UsicInfo> getMusicInfo () {list <musicinfo> musicinfos = musicinfomapper.selectall (); return musicinfos; }}Créer un contrôleur
package com.chaoqi.springboot_mybatisplus.web; import com.chaoqi.springboot_mybatisplus.dao.domain.musicinfo; import com.chaoqi.springboot_mybatisplus.svice.musicinfoservice; import org.springframework.beans.factory.annotation.autowired; import org.springframework.web.bind.annotation.requestmapping; import org.springframework.web.bind.annotation.restController; import java.util.list; @ restController @ requen MusicInFocontroller {@Autowired Private MusicInfoservice MusicInfoservice; @RequestMapping ("/ showmusic") Liste publique <usicInfo> getMusiCinfo () {list <musicinfo> musicinfo1 = musicinfoservice.getMusiciCinfo (); return musicinfo1; }}Ici, je n'écris pas SQL pour mapper. Certains sqlmybatiplus simples sont encapsulés, ce qui fait gagner beaucoup de temps de développement. S'il s'agit d'un SQL complexe, il peut également être implémenté en écrivant SQL natif. Dans mon deuxième blog, j'ai parlé de l'intégration du projet Springboot + SpringMVC + MyBatis.
Exécutez SpringbootMybatisplusapplication Fonction principale
package com.chaoqi.springboot_mybatisplus; import org.mybatis.spring.annotation.mapperscan; import org.springframework.boot.springApplication; import; org.springframework.boot.autoconfigure.springbootapplication; @ SpringbootApplication @ Mapperscan ("com.chaoqi.springboot_mybatisplus.dao.mapper") public SpringbootMybatisplusapplication {public static Void Main (String [] args) {{args) {args) {public STATIC VOID MAINE (String [] args) { SpringApplication.Run (SpringbootMyBatisplusApplication.Class, Args); }}Afficher la base de données
Vous trouverez ci-dessous quelques méthodes pour encapsulation de MyBatisplus. Comment utiliser ces méthodes spécifiquement. Les amis intéressés peuvent vérifier le code source. MyBatisplus a également une puissante fonction de pagination. Si vous êtes intéressé, vous pouvez également apprendre ici.
(Adresse de téléchargement du code source)
Enfin, merci d'avoir regardé. Veuillez me pardonner votre manque d'expérience dans l'écriture de blogs.