介绍:
mybatis-plus(简称mp)是一个 mybatis 的增强工具,在 mybatis 的基础上只做增强不做改变,为简化开发、提高效率而生。(摘自mybatis-plus官网)mybatis虽然已经给我们提供了很大的方便,但它还是有不足之处,mp的存在就是为了稍稍弥补mybatis的不足。在我们使用mybatis时会发现,每当要写一个业务逻辑的时候都要在dao层写一个方法,再对应一个sql,即使是简单的条件查询、即使仅仅改变了一个条件都要在dao层新增一个方法,针对这个问题,mp这样一个框架,一种集mybatis与hibernate的优点一起的框架。它提供了hibernate的单表curd操作的方便同时,又保留了mybatis的特性。
本章只教大家怎么使用mybatisplus,如果想深入了解底层是怎么实现的可以去官网下载源代码进行解读。
一、创建项目
这里就不一步一步来了,我直接给出创建后的项目结构,在本章的最后我会给出源码地址需要看效果的可以进行下载。
二、引入依赖
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
|
<?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>
<groupid>com.chaoqi</groupid>
<artifactid>springboot_mybatisplus</artifactid>
<version> 0.0 . 1 -snapshot</version>
<packaging>jar</packaging>
<name>springboot_mybatisplus</name>
<description>demo project for spring boot</description>
<parent>
<groupid>org.springframework.boot</groupid>
<artifactid>spring-boot-starter-parent</artifactid>
<version> 2.0 . 0 .release</version>
<relativepath/>
</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>
<dependency>
<groupid>org.springframework.boot</groupid>
<artifactid>spring-boot-starter-web</artifactid>
</dependency>
<dependency>
<groupid>org.mybatis.spring.boot</groupid>
<artifactid>mybatis-spring-boot-starter</artifactid>
<version> 1.3 . 2 </version>
</dependency>
<dependency>
<groupid>mysql</groupid>
<artifactid>mysql-connector-java</artifactid>
<scope>runtime</scope>
</dependency>
<dependency>
<groupid>org.springframework.boot</groupid>
<artifactid>spring-boot-starter-test</artifactid>
<scope>test</scope>
</dependency>
<!--添加jsp依赖 -->
<dependency>
<groupid>org.springframework.boot</groupid>
<artifactid>spring-boot-starter-tomcat</artifactid>
</dependency>
<dependency>
<groupid>org.apache.tomcat.embed</groupid>
<artifactid>tomcat-embed-jasper</artifactid>
</dependency>
<!-- springboot - mybatis 逆向工程 -->
<dependency>
<groupid>org.mybatis.generator</groupid>
<artifactid>mybatis-generator-core</artifactid>
<version> 1.3 . 2 </version>
</dependency>
<!-- mybatis 通用 mapper -->
<dependency>
<groupid>tk.mybatis</groupid>
<artifactid>mapper-spring-boot-starter</artifactid>
<version> 1.1 . 4 </version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupid>org.springframework.boot</groupid>
<artifactid>spring-boot-maven-plugin</artifactid>
</plugin>
<plugin>
<groupid>org.mybatis.generator</groupid>
<artifactid>mybatis-generator-maven-plugin</artifactid>
<version> 1.3 . 2 </version>
<configuration>
<configurationfile>src/main/resources/generatorconfig.xml</configurationfile>
<verbose> true </verbose>
<overwrite> true </overwrite>
</configuration>
<executions>
<execution>
<id>generate mybatis artifacts</id>
<goals>
<goal>generate</goal>
</goals>
</execution>
</executions>
<dependencies>
<dependency>
<groupid>org.mybatis.generator</groupid>
<artifactid>mybatis-generator-core</artifactid>
<version> 1.3 . 2 </version>
</dependency>
<dependency>
<groupid>tk.mybatis</groupid>
<artifactid>mapper</artifactid>
<version> 3.5 . 0 </version>
</dependency>
</dependencies>
</plugin>
</plugins>
</build>
</project>
|
三、编辑application.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
server:
port: 8080
spring:
mvc:
view:
prefix: /web-inf/jsp/
suffix: .jsp
datasource:
url: jdbc:mysql: //localhost:3306/test?characterencoding=utf-8&useunicode=true&usessl=false
username: root
password: 123456
driver- class -name: com.mysql.jdbc.driver
mybatis:
mapper-locations: classpath:mapper/*.xml
type-aliases- package : com.chaoqi.springboot_mybatisplus.domain
|
四、逆向生成pojo,mapper
创建generatorconfig.xml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
|
<?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" >
<generatorconfiguration>
<properties 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" defaultmodeltype= "flat" >
<property name= "beginningdelimiter" value= "`" />
<property name= "endingdelimiter" value= "`" />
<property name= "javafileencoding" value= "utf-8" />
<plugin type= "tk.mybatis.mapper.generator.mapperplugin" >
<property name= "mappers" value= "tk.mybatis.mapper.common.mapper" />
</plugin>
<!-- 注释 -->
<commentgenerator>
<!-- 是否生成注释代时间戳 -->
<property name= "suppressdate" value= "true" />
<!-- 是否去除自动生成的注释 true :是 : false :否 -->
<property name= "suppressallcomments" value= "false" />
</commentgenerator>
<!-- jdbc连接 -->
<jdbcconnection
driverclass= "com.mysql.jdbc.driver"
connectionurl= "jdbc:mysql://localhost:3306/test?characterencoding=utf-8"
userid= "root"
password= "123456" >
</jdbcconnection>
<!-- 生成实体类地址 -->
<javamodelgenerator targetpackage= "com.chaoqi.springboot_mybatisplus.dao.domain" targetproject= "src/main/java" />
<!-- 生成mapper xml文件 -->
<sqlmapgenerator targetpackage= "mapper" targetproject= "src/main/resources" />
<!-- 生成mapper xml对应client-->
<javaclientgenerator targetpackage= "com.chaoqi.springboot_mybatisplus.dao.mapper" targetproject= "src/main/java"
type= "xmlmapper" />
<!-- 配置表信息 -->
<table tablename= "%" >
<!--mysql 配置-->
<generatedkey column= "id" sqlstatement= "mysql" />
<!--oracle 配置-->
<!--<generatedkey column= "id" sqlstatement= "select seq_{1}.nextval from dual" identity= "false" type= "pre" />-->
</table>
</context>
</generatorconfiguration>
|
maven运行generator
生成完后的项目结构如下
五、整合mybatisplus
创建service接口以及service实现类
1
2
3
4
5
6
7
8
|
package com.chaoqi.springboot_mybatisplus.service;
import com.chaoqi.springboot_mybatisplus.dao.domain.musicinfo;
import java.util.list;
public interface musicinfoservice {
public list<musicinfo> getmusicinfo();
}
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
package com.chaoqi.springboot_mybatisplus.service.impl;
import com.chaoqi.springboot_mybatisplus.dao.domain.musicinfo;
import com.chaoqi.springboot_mybatisplus.dao.mapper.musicinfomapper;
import com.chaoqi.springboot_mybatisplus.service.musicinfoservice;
import org.springframework.beans.factory.annotation.autowired;
import org.springframework.stereotype.service;
import java.util.list;
@service
public class musicinfoserviceimpl implements musicinfoservice {
@autowired
private musicinfomapper musicinfomapper;
@override
public list<musicinfo> getmusicinfo() {
list<musicinfo> musicinfos = musicinfomapper.selectall();
return musicinfos;
}
}
|
创建controller
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
package com.chaoqi.springboot_mybatisplus.web;
import com.chaoqi.springboot_mybatisplus.dao.domain.musicinfo;
import com.chaoqi.springboot_mybatisplus.service.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
@requestmapping (value = "/music" )
public class musicinfocontroller {
@autowired
private musicinfoservice musicinfoservice;
@requestmapping ( "/showmusic" )
public list<musicinfo> getmusicinfo() {
list<musicinfo> musicinfo1 = musicinfoservice.getmusicinfo();
return musicinfo1;
}
}
|
这里我的mapper并不要写sql,一些简单的sqlmybatiplus都给封装好了,节省了许多开发时间,如果是一些复杂的sql,也可以通过写原生sql来实现,在我的第二篇博客中有讲到springboot+springmvc+mybatis项目整合
运行springbootmybatisplusapplication主函数
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
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 class springbootmybatisplusapplication {
public static void main(string[] args) {
springapplication.run(springbootmybatisplusapplication. class , args);
}
}
|
查看数据库
下面给出mybatisplus封装的一些方法,这些方法具体怎么使用,感兴趣的小伙伴可以查看下源代码,mybatisplus还有一个强大的分页功能,如果有兴趣也可以去这里学习
(源码下载地址)
最后谢谢大家的观看,写博客经验不足,写得不好请见谅
原文链接:https://www.cnblogs.com/caichaoqi/archive/2018/04/01/8662614.html