introducir:
MyBatis-plus (MP para abreviar) es una herramienta de mejora de mybatis. Según MyBatis, solo mejora y no cambia, y nace para simplificar el desarrollo y mejorar la eficiencia. (Extracto del sitio web oficial de MyBatis-Plus) Aunque MyBatis nos ha brindado una gran comodidad, todavía tiene deficiencias. La existencia de MP es compensar ligeramente las deficiencias de MyBatis. Cuando usamos mybatis, encontraremos que cada vez que queramos escribir una lógica comercial, tenemos que escribir un método en la capa DAO y luego corresponder a un SQL. Incluso si simplemente consultamos una condición, tenemos que agregar un nuevo método en la capa DAO. En respuesta a este problema, MP es un marco que combina las ventajas de mybatis e hibernate. Proporciona la conveniencia de la operación de cuajada de una sola mesa de Hibernate mientras conserva las características de MyBatis.
Este capítulo solo te enseña cómo usar mybatisplus. Si desea comprender en profundidad cómo se implementa la capa subyacente, puede descargar el código fuente para interpretarlo en el sitio web oficial.
1. Crea un proyecto
No iré paso a paso aquí. Daré directamente la estructura del proyecto creado. Al final de este capítulo, daré la dirección del código fuente que debe encontrarse.
2. Introducir dependencias
<? xml versión = "1.0" encoding = "utf-8"?> <Project xmlns = "http://maven.apache.org/pom/4.0.0" xmlns: xsi = "http://www.w3.org/2001/xmlschemainstance" 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> <MoupRid> com.chaoqi </proupid> <AtifactId> SpringBoot_MybatisPlus </arfactid> <versión> 0.0.1-snapshot </versewers> <packaging> jar </paquete> <name> springboot_mybatisplus </name> <scription> Proyecto de demostración para la bota de primavera </descripción> <Parent> <grupid> org.springframework.boot </groupid> <ArifactID> Spring-Boot-Starter-Parent </arfactid> <versión> 2.0.0.release </versever> <relativePath/> </rent> <properties> <proyecto.build.sourceEncoding> Utf-8 </project.build.sourceEnding> <Project.Reporting.outputEncoding> UTF-8 </project.rePorting.outputEncoding> <java.version> 1.8 </Java.version> </sperties> <pendencies> <pendency> <proupid> org.springFrameWork.boot </groupId> <Atifactid> Spring-Boot-Starter-JdBC </Jifact </JifactWCc </ArtIfactWla <Spendency> <MoupRoMID> org.springframework.boot </groupid> <artifactID> spring-boot-starter-web </artifactid> </pepertency> <pendency> <grupoD> org.mybatis.spring.boot </groupid> <arfactiD> mybatis-spring-spring-spre-starter </artifactid> 1. </pendency> <epardency> <uproupId> mysql </groupid> <artifactid> mysql-connector-java </arfactid> <cope> runtime </cope> </pendency> <epardency> <proupid> org.springFrame.boot </groupid> <artifactid> spring-boot-starter-test </artid> <cope> test </scope> </pendency> <!-Agregar dependencias JSP-> <Spendency> <ProupId> org.springframework.boot </groupid> <artifactid> spring-boot-starter-tomcat </artifactid> </dependency> <epartency> <proupid> org.apache.tomcat.eMbed </groupid>> <artifactid> tomcat-embebido-jasper </artifactid> </pepertency> <!-springboot-mybatis inverso inverning-> <pendency> <MoupRupid> org.mybatis.generator </groupId> <artifactID> myBatis-Generator-core </artifactid> <Ponente> <Spendency> <MoupRoD> TK.Mybatis </groupid> <artifactid> mapper-spring-boot-starter </artifactid> <verserse> 1.1.4 </verversion> </dependency> </pendencies> <construction> <glugins> <glugin> <grupid> org.springframework.boot </groupid> <artifactid> Spring-Boot-Maven-Plugin </artifactid> </glugin> <glugin> <grupo> org.mybatis.generator </uproupid> <artifactid> mybatis-generator-maven-plugin </artifactid> <version> 1.3.2 </versión> <tugumenting> <ConfigurationFile> Src/Main/Resources/GeneratorConfig.xml </ConfigurationFile> <verbose> true </ verbose> <verwrite> true </overwrite> </figuration> <secutesions> <secution> <id> Genere mybatis artifacts </id> <SoTs> <perm> generate </pule> </secution> </secution </decution> </secution> <pendencies> <spendency> <proupid> org.mybatis.generator </groupid> <artifactid> myBatis-Generator-core </artifactid> <version> 1.3.2 </ververy> </pendency> <ependency> <mupoupid> tk.mybatis </groupid> <artifactid> mapper <tifactid> </pendency> </dependencias> </glugin> </glugins> </stract> </proyecto>
3. Editar aplicación.yml
servidor: puerto: 8080spring: mvc: ver: prefix:/web-inf/jsp/sufix: .jsp dataSource: url: jdbc: mysql: // localhost: 3306/test? CaracteriCoding = utf-8 & useUnicode = true & ussl = falso usame: contraseña road: 123456-class-class-name: name-name: name: com.mysql.jdbc.drivermybatis: Mapper-locations: classpath: mapper/*. xml type-aliases-package: com.chaoqi.springboot_mybatis.domain
4. Generación inversa de POJO, Mapeador
Crear generadorconfig.xml
<? xml versión = "1.0" encoding = "utf-8"?> <! DOCTYPE GeneratorConfiguration public "-// mybatis.org//dtd Configuración del generador de MyBatis 1.0 // en" "http://mybatis.org/dtd/mybatis-Generator-config_1_0.dtdd" <200 <Properties Resource = "Application.yml"/> <classpathEntry ubicación = "d: /mysql/mysql-connector-java-5.1.46/mysql-connector-java-5.1.46.jar"/> <context id = "mysql" targunruntime = "mybatis3simple" predeterminado "predeterminado" name = "StartingDeliMiter" value = "` "/> <Property Name =" EndDelimiter "value =" `"/> <Property Name = "JavaFileCoding" value = "utf-8"/> <plugin type = "tk.mybatis.mapper.generator.mapperplugin"> <name de propiedad = "Mapeadores" "" Mapeadores "" "" Mapeadores "" "" valor = "tk.mybatis.mapper.common.mapper"/> </tugin> <!-comentario-> <commentGenerator> <!-si para generar comentarios para timestamps-> <Property name = "supressDate" valor = "true"/> <!-si eliminar automáticamente los comentarios verdaderos verdaderos: sí: falso: no-> <name de propiedad = "supressallcomments" value " </commentGenerator> <!-JDBC Conexión-> <jdbcconnection driverClass = "com.mysql.jdbc.driver" ConnectionUrl = "jdbc: mysql: // localhost: 3306/test? caracterEncoding = utf-8" userId = "root" contraseña = "123456"> </jdbcconnection> <! <javaModelGenerator TargetPackage = "com.chaoqi.springboot_mybatisplus.dao.domain" targetProject = "src/main/java"/> <!-Generar el archivo mapper xml-> <sqlMapGenerator TargetPackage = "mapper" Target = "src/src/recursos/recursos" <!-Generation TargetPackage = "mApper" XML CLIENTE CORRESive-> <javaclientGenerator TargetPackage = "com.chaoqi.springboot_mybatisplus.dao.mapper" targetProject = "src/main/java" type = "xmlmapper"/> < columna = "id" sqlStatement = "mysql"/> <!-Oracle Configuration-> <!-<GeneredKey columna = "id" SqlStatement = "Seleccione SEQ_ {1} .NextVal de dual" Identity = "False" type = "pre"/>-> </xtupe> </contexto> </peneratorConfiguration>generador de ejecución maven
La estructura del proyecto generada es la siguiente
5. Integre mybatisplus
Crear interfaz de servicio y clase de implementación de servicios
paquete com.chaoqi.springboot_mybatisplus.service; import com.chaoqi.springboot_mybatisplus.dao.domain.musicinfo; import java.util.list; interface musicInfoservice {LIGD Public <icusinfo> getMusicinfo ();} paquete com.chaoqi.springboot_mybatisplus.service.impl; import com.chaoqi.springboot_mybatisplus.service.musicinfoservice; import org.springframework.beans.factory.annotation.aUtowired; import org.springframework.stereotype.service; import java.util.list; @ServicePublic en clase MusicInfoServiceImpleMpLEmpleMpLEmpleMpLEmpleMpleMplementEmplementEmplementEmplementEmplementEmplementEmplementa @Autowired private MusicInfomapper MusicInfomapper; @Override Public List <MusicInfo> getMusicInfo () {list <Sic MusicInfo> MusicInfos = MusicInfomapper.Selectall (); regresar musicInfos; }}Crear controlador
paquete com.chaoqi.springboot_mybatisplus.web; import com.chaoqi.springboot_mybatisplus.dao.domain.musicinfo; import com.chaoqi.springboot_mybatisplus.service.musicinfoservice; import org. MusicInfocontroller {@aUtowired private MusicInfoservice MusicInfoservice; @RequestMapping ("/showmusic") Lista pública <Sic MusicInfo> getMusicInfo () {list <SicinFo> MusicInfo1 = MusicInfoservice.getMusicInfo (); regresar musicInfo1; }}Aquí no escribo SQL para Mapper. Algunos sqlmybatiplus simples están encapsulados, ahorrando mucho tiempo de desarrollo. Si se trata de un SQL complejo, también se puede implementar escribiendo SQL nativo. En mi segundo blog, hablé sobre la integración del proyecto SpringBoot+SpringMVC+MyBatis.
Ejecutar la función principal de la aplicación springbootmybatisplusplusplusplusplusplusplusplusplusplusplusplusplus
paquete 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") clase pública springbootmybatisplusapplication {public static void main (string [] [] Springapplication.run (springbootmybatisplusapplication.class, args); }}Ver la base de datos
A continuación se presentan algunos métodos para la encapsulación de mybatisplus. Cómo usar estos métodos específicamente. Los amigos interesados pueden consultar el código fuente. MyBatisplus también tiene una poderosa función de paginación. Si está interesado, también puede aprender aquí.
(Dirección de descarga del código fuente)
Finalmente, gracias por mirar. Por favor, perdóname por tu falta de experiencia al escribir blogs.