소개하다:
mybatis-plus (짧은 MP)는 mybatis 향상 도구입니다. Mybatis를 기반으로, 그것은 단순히 개발을 단순화하고 효율성을 향상시키기 위해 단지 향상되고 변하지 않으며 태어납니다. (Mybatis-Plus 공식 웹 사이트에서 발췌) Mybatis는 우리에게 큰 편의를 제공했지만 여전히 단점이 있습니다. MP의 존재는 Mybatis의 단점을 약간 보충하는 것입니다. mybatis를 사용할 때 비즈니스 로직을 작성하려면 DAO 계층에 메소드를 작성한 다음 SQL에 해당해야한다는 것을 알게됩니다. 단순히 조건을 쿼리하더라도 DAO 레이어에 새 메소드를 추가해야합니다. 이 문제에 대한 응답으로 MP는 Mybatis와 최대 절전 모드의 장점을 결합한 프레임 워크입니다. Mybatis의 특징을 유지하면서 Hibernate의 단일 테이블 커드 작업의 편의를 제공합니다.
이 장에서는 mybatisplus를 사용하는 방법 만 알려줍니다. 기본 계층이 구현되는 방법을 심층적으로 이해하려면 소스 코드를 다운로드하여 공식 웹 사이트에서 해석 할 수 있습니다.
1. 프로젝트를 만듭니다
나는 여기서 단계적으로 가지 않을 것입니다. 생성 된 프로젝트 구조를 직접 줄 것입니다. 이 장의 끝에서 다운로드해야 할 소스 코드 주소를 제공합니다.
2. 종속성을 소개합니다
<? 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.xsd"> <modeversion> 4.0.0 </modelversion> <groupid> com.chaoqi </groupid> <Artifactid> springboot_mybatisplus </artifactid> <snapshot </version> <packaging> jar </packaging> <name> springboot_mybatisplus </name> <description> 스프링 부츠를위한 데모 프로젝트 </descrip> <부모> <pergicid> org.springframework.boot. <Artifactid> Spring-Boot-Starter-Parent </artifactid> <bersion> 2.0.0.Release </version </version </version> <realativePath/> </parent> <properties> <project.build.sourceencoding> utf-8 </project.build.sourceencoding> <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> <java.version>1.8</java.version> </properties> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-jdbc</artifactId> </dependency> <pectionency> <groupid> org.springframework.boot </groupid> <artifactid> 스프링-부트-스타터-web </artifactid> </fectionency> <groupidency> <groupid> org.mybatis.spring.boot </groupid> <artifactid> mybatis-spring-starter </artifactid> </의존성> <pectionency> <groupId> mySQL </groupId> <artifactID> mySQL-connector-java </artifactid> <cope> runtime </scope> </spectency> <groupId> org.springframework.boot </groupId> <artifactid> spring-hoot-starter-test </artifactid> <Scope> 테스트 </scope> </fectionency> <!-JSP 종속성 추가-> <pectionency> <groupid> org.springframework.boot </groupid> <artifactid> spring-boot-starter-tomcat </artifactid> </dependency> <groupid> <groupid> org.apache.tomcat.embed. <Artifactid> Tomcat-embed-Jasper </artifactid> </exceent and </fectionency> <!-SpringBoot-MyBatis 리버스 엔지니어링-> <prection> <groupid> org.mybatis.generator </groupid> <artifactid> mybatis-generator-core </artifactid> <3.2 </version> <! <pectionency> <groupId> TK.MyBatis </groupId> <ArtifactID> Mapper-Spring-Boot-Starter </artifactid> <버전> 1.1.4 </version> </fectionency> </dependencies> <플러그인> <Plugin> <GroupId> org.springframewort. <Artifactid> Spring-Boot-Maven-Plugin </artifactid> </plugin> <groupid> org.mybatis.generator </groupid> <trifactid> mybatis-generator-maven-plugin </artifactid> <3.2 </version> <구성> <configurationFile> src/main/resources/generatorconfig.xml </configurationFile> </verbose> </verbose> </verbose> true </overwrite> </configuration> <executions> <id> 생성 mybatis artifacts </id> </execution> Generate> </govet> </govet> </guald> </execution> <pectionies> <pectinement> <groupId> org.mybatis.generator </groupid> <artifactid> mybatis-generator-core </artifactid> <bersion> 1.3.2 </dependency> <pelection> <groupid> tk.mybatis </groupId> </0 버전> 5 </artifactid> 3.5.5. </의존성> </decomencies> </plugin> </plugins> </build> </project>
3. application.yml 편집
서버 : 8080Spring : MVC : View : Prefix :/web-inf/jsp/puffix : .jsp dataSource : url : jdbc : mysql : // localhost : 3306/test? test? utf-8 & usf-8 & usf-8 & usf-8 & usecode = false username : root 비밀번호 : 12345 Driver Class-name : com.mysql.jdbc.drivermybatis : Mapper-locations : classpath : mapper/*. xml type-aliases-package : com.chaoqi.springboot_mybatisplus.domain
4. Pojo, Mapper의 역 생성
GeneratorConfig.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-cenerator-config_1_0.dtd"> genortdd "> resource = "application.yml"/> <classPathentry location = "d : /mysql/mysql-connector-java-5.1.46/mysql-connector-java-5.1.46.jar"/> <context id = "mysql"targetruntime = "mybatis3simple"defaultModtype = "" "" "" "" "" "" "" "" "mybatis3simple". value = "`"/> <속성 이름 = "enddelimiter"value = "`"/> <속성 이름 = "javafileencoding"value = "utf-8"/> <plugin type = "tk.mybatis.mapper.generator.mapperplugin"> <property name = "mappers"value = "tk.mybatis.mapper.common.mapper"/>. 주석-> <commentGenerator> <!-타임 스탬프에 대한 주석을 생성할지-> <속성 이름 = "suppressDate"value = "true"/> <!-자동 생성 된 주석을 제거할지 여부 : 예 : 거짓 : 거짓 :> <속성 이름 = "suppressAllComments"value = "false"/> </commentGenerator> <!-JDBC Connection-> <jdbc connect. driverclass = "com.mysql.jdbc.driver"ConnectionUrl = "jdbc : mysql : // localhost : 3306/test? char TargetPackage = "com.chaoqi.springboot_mybatisplus.dao.domain"targetProject = "src/main/java"/> <!-Mapper XML 파일 생성-> <sqlmapgenerator targetPackage = "Mapper"TargetProject = "Src/Main/Resources"! <javaclientgenerator targetpackage = "com.chaoqi.springboot_mybatisplus.dao.mapper"targetProject = "src/main/java"type = "xmlmapper"/> <!-구성 테이블 정보-> <table tablename = "%"> <!-mysql configuration-> mysql configuration. sqlstatement = "mysql"/> <!-Oracle configuration-> <!-<generatedkey column = "id"sqlstatement = "select seq_ {1} .nextVal"evual "evenity ="false "pref"/>-> </table> </context> </generatorconfiguration>Maven Run Generator
생성 된 프로젝트 구조는 다음과 같습니다
5. mybatisplus를 통합합니다
서비스 인터페이스 및 서비스 구현 클래스를 만듭니다
pack
패키지 com.chaoqi.springboot_mybatisplus.service.impl; import com.chaoqi.springboot_mybatisplus.dao.domain.musicinfo; import com.chaoqi.springboot_mybatisplus.dao.mapper.muscinfomapper; import com.chaoqi.springboot_mybatisplus.service.service.musicinfoservice; import org.springframework.bean.beans.annotation.autowired; import org.springframework.stereotyp.service; import java.util.list; @servicepublic classinfoservice inviceimpl plesservice inclember inclems inclember inmpice invice inmpice inservice classin. @autowired private musicinfomapper musicInfomapper; @override public list <ficienfo> getMusicInfo () {list <musicInfo> musicInfos = musicInfomapper.selectall (); MusicInfos를 반환합니다. }}컨트롤러를 만듭니다
패키지 com.chaoqi.springboot_mybatisplus.web; import com.chaoqi.springboot_mybatisplus.dao.domain.musicinfo; import com.chaoqi.springboot_mybatisplus.service.musicinfoservice; import org.springframework.beans.bean.annotation.autowired; import org.springframework.bind.annotation.requestmapping; import org.springframework.web.bind.annotation.restController; import java.util.list;@value public musicinforon (value =/music inficanforon) {@autowired private musicinfoservice musicinfoservice; @requestmapping ( "/showmusic") public list <ficienfo> getMusicInfo () {list <ficienfo> musicInfo1 = musicInfoservice.getMusicInfo (); MusicInfo1을 반환합니다. }}여기 나는 Mapper 용 SQL을 쓰지 않습니다. 일부 간단한 sqlmybatiplus가 캡슐화되어 많은 개발 시간이 절약됩니다. 복잡한 SQL 인 경우 기본 SQL을 작성하여 구현할 수도 있습니다. 두 번째 블로그에서 SpringBoot+SpringMVC+MyBatis 프로젝트의 통합에 대해 이야기했습니다.
SpringBootmyBatisPlusPlusplication 메인 기능을 실행하십시오
패키지 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 class springbootmybatisplusepplication {public static void main (문자열 [] args) { SpringApplication.run (SpringBootmyBatisPlusPlusplication.class, args); }}데이터베이스를 봅니다
다음은 mybatisplus의 캡슐화를위한 몇 가지 방법입니다. 이러한 방법을 구체적으로 사용하는 방법. 관심있는 친구는 소스 코드를 확인할 수 있습니다. Mybatisplus는 또한 강력한 페이지 매김 기능을 가지고 있습니다. 관심이 있으시면 여기에서도 배울 수 있습니다.
(출처 코드 다운로드 주소)
마지막으로, 시청해 주셔서 감사합니다. 블로그 작성 경험이 부족한 것에 대해 용서 해주세요.