我是靠谱客的博主 标致小海豚,这篇文章主要介绍Mybatis PlusMybatis Plus使用一、pom.xml二、application.yml三、入门四、自动代码生成五、spring boot整合mybatis plus,现在分享给大家,希望可以做个参考。

Mybatis Plus使用

在这里插入图片描述


文章目录

  • Mybatis Plus使用
  • 一、pom.xml
  • 二、application.yml
  • 三、入门
    • 1.实体类
    • 2.mapper
  • 四、自动代码生成
    • 1.jar
    • 2.生成器代码
  • 五、spring boot整合mybatis plus
    • 1.mybatis plus分页插件
    • 2.分页查询
    • 3.Controller


一、pom.xml

maven引入jar包

parent

复制代码
1
2
3
4
5
6
7
<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.6.2</version> <relativePath/> </parent>

其他

复制代码
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
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> <!--mybatis plus核心包--> <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>3.5.0</version> </dependency> <!-- mysql驱动包 --> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.49</version> </dependency> <!-- lombok 简化实体类写法 日志功能支持--> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.18.22</version> <scope>provided</scope> </dependency> <dependency> <groupId>com.alibaba</groupId> <artifactId>druid-spring-boot-starter</artifactId> <version>1.2.8</version> </dependency>

二、application.yml

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#配置整合druid spring: datasource: druid: url: jdbc:mysql://localhost:3306/db?useUnicode=true&characterEncoding=utf-8 username: root password: root initial-size: 5 max-active: 20 min-idle: 10 max-wait: 10 #配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒 time-between-eviction-runs-millis: 60000 #配置日志输出 mybatis-plus: configuration: log-impl: org.apache.ibatis.logging.stdout.StdOutImpl

三、入门

1.实体类

在主键上添加注解 @TableId

复制代码
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
import lombok.Data; /** * @ fileName:User * @ description: * @ author:makejava * @ createTime:2022/7/18 9:51 * @ version:1.0.0 */ @SuppressWarnings("serial") @TableName("user") @Data public class User { /** * 用户编号 */ @TableId private Long id; /** * 用户名称 */ private String name; /** * 邮箱 */ private String email; }

2.mapper

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
import com.sbmp.entity.User; import com.baomidou.mybatisplus.core.mapper.BaseMapper; /** * @ fileName:UserMapper * @ description: * @ author:makejava * @ createTime:2022/7/18 9:53 * @ version:1.0.0 */ public interface UserMapper extends BaseMapper<User> { }

四、自动代码生成

1.jar

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
<!--mybatisplus 代码生成器包--> <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-generator</artifactId> <version>3.5.1</version> </dependency> <!--默认前端引擎包 不加生成时会报错--> <dependency> <groupId>org.apache.velocity</groupId> <artifactId>velocity-engine-core</artifactId> <version>2.3</version> </dependency>

2.生成器代码

复制代码
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
import com.baomidou.mybatisplus.generator.FastAutoGenerator; import com.baomidou.mybatisplus.generator.config.OutputFile; import java.util.Collections; /** * @ fileName:AutoCodeGenerator * @ description: * @ author:makejava * @ createTime:2022/7/19 10:24 * @ version:1.0.0 */ public class AutoCodeGenerator { public static void main(String[] args) { FastAutoGenerator.create("jdbc:mysql://localhost:3306/db", "root", "root") .globalConfig(builder -> {//全局配置 builder.author("baomidou") // 设置作者 .enableSwagger() // 开启 swagger 模式 .fileOverride() // 覆盖已生成文件 .outputDir("D:\idea\springboot_mybatisplus_demo\src\main\java"); // 指定输出目录 }) .packageConfig(builder -> {//包配置 builder.parent("com") // 设置父包名 .moduleName("sbmp") // 设置父包模块名 .pathInfo(Collections.singletonMap(OutputFile.mapperXml, "D:\idea\springboot_mybatisplus_demo\src\main\resources\mapper")); // 设置mapperXml生成路径 }) .strategyConfig(builder -> { builder.addInclude("tb_user","sys_menu") // 设置需要生成的表名 .addTablePrefix("tb_", "sys_"); // 设置过滤表前缀 }) //.templateEngine(new FreemarkerTemplateEngine()) // 使用Freemarker引擎模板,默认的是Velocity引擎模板 .execute(); } }

五、spring boot整合mybatis plus

1.mybatis plus分页插件

复制代码
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
import com.baomidou.mybatisplus.annotation.DbType; import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor; import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; /** * @ fileName:MybatisPlusConfig * @ description: * @ author:makejava * @ createTime:2022/7/19 11:09 * @ version:1.0.0 */ @Configuration public class MybatisPlusConfig { /** * mybatis plus分页插件配置 * @return */ @Bean //<bean id=mybatisPlusInterceptor class='com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor' public MybatisPlusInterceptor mybatisPlusInterceptor() { MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor(); interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL)); return interceptor; } }

2.分页查询

复制代码
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
import com.sbmp.entity.User; import com.sbmp.mapper.UserMapper; import com.sbmp.service.IUserService; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.springframework.stereotype.Service; import org.springframework.util.StringUtils; import javax.annotation.Resource; import java.util.Map; /** * 服务实现类 * * @author makejava * @since 2022-07-19 */ @Service public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements IUserService { @Resource private UserMapper userMapper; @Override public IPage<User> queryPage(Map map) { //分页参数设置 IPage<User> page = new Page<>(); //设置当前页码 第几页 page.setCurrent(Long.valueOf(map.get("pageNo") +"")); //设置每页显示条数 page.setSize(Long.valueOf(map.get("pageSize") +"")); //查询封装类 QueryWrapper queryWrapper =new QueryWrapper(); //使用加各种参数 if(!StringUtils.isEmpty(map.get("name"))){ queryWrapper.like("name", map.get("name")); } if(!StringUtils.isEmpty(map.get("email"))){ queryWrapper.like("email", map.get("email")); } return userMapper.selectPage(page, queryWrapper); } }

3.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
25
26
27
28
29
30
import com.sbmp.entity.User; import com.sbmp.service.IUserService; import com.sbmp.util.Result; import org.springframework.web.bind.annotation.*; import org.springframework.stereotype.Controller; import javax.annotation.Resource; import java.util.Map; /** * 前端控制器 * * @author makejava * @since 2022-07-19 */ @RestController @RequestMapping("/user") public class UserController extends BaseController{ @Resource private IUserService iUserService; /** * 分页带参查询方法 * @param map * @return */ @PutMapping("page") public Result page(@RequestBody Map map){ return success(iUserService.queryPage(map)); } }

最后

以上就是标致小海豚最近收集整理的关于Mybatis PlusMybatis Plus使用一、pom.xml二、application.yml三、入门四、自动代码生成五、spring boot整合mybatis plus的全部内容,更多相关Mybatis内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(76)

评论列表共有 0 条评论

立即
投稿
返回
顶部