Java--SpringBoot-44-Mybatis-12-MybatisPlus使用

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS PostgreSQL,集群系列 2核4GB
简介: Mybatis Plus(简称 MP)是一个Mybatis(opens new window)的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。

Mybatis Plus(简称 MP)是一个Mybatis(opens new window)的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。

image.png

       今天看下在SpringBoot中简单的使用MybatisPlus。

一、引入pom依赖

<?xmlversion="1.0"encoding="UTF-8"?><projectxmlns="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 https://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.3.12.RELEASE</version><relativePath/></parent><groupId>com.xing</groupId><artifactId>springBootMybatisPlus</artifactId><version>0.0.1-SNAPSHOT</version><name>springBootMybatisPlus</name><description>MybatisPlusDemoprojectforSpringBoot</description><properties><java.version>1.8</java.version></properties><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency><!--https://mvnrepository.com/artifact/com.baomidou/mybatis-plus-boot-starter --><dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>3.4.3.4</version></dependency><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>8.0.15</version></dependency></dependencies><build><plugins><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-compiler-plugin</artifactId><version>3.8.1</version><configuration><source>1.8</source><target>1.8</target></configuration></plugin></plugins></build></project>

二、直接使用上篇MybatisGenerator自动生成的目录结构

image.png

       当然也可以自己建立,上图中,我们并没有在mapper、service等文件中编写其他的东西,注意不一样的地方:

1.mapper继承了com.baomidou.mybatisplus.core.mapper.BaseMapper2.service继承了com.baomidou.mybatisplus.extension.service.IService3.UserServiceImpl继承了com.baomidou.mybatisplus.extension.service.impl.ServiceImpl

       Java中,子类可以继承父类的所有,那么我们就可以直接使用父类中m默认提供的API,不用去逐个编写了。

三、注入到controller中使用

packagecom.xing.springBootMybatisPlus.controller;
importcom.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
importcom.xing.springBootMybatisPlus.model.User;
importcom.xing.springBootMybatisPlus.service.IUserService;
importorg.springframework.beans.factory.annotation.Autowired;
importorg.springframework.web.bind.annotation.RequestMapping;
importorg.springframework.stereotype.Controller;
importjava.util.ArrayList;
importjava.util.List;
importjava.util.Map;
/*** 前端控制器* @author x* @since 2021-11-19*/@Controller@RequestMapping("/user")
publicclassUserController {
finalIUserServiceiUserService;
@AutowiredpublicUserController(IUserServiceiUserService) {
this.iUserService=iUserService;
    }
/*** test* @return ok*/@RequestMapping("/test")
publicStringtest(){
Useruser=newUser();
user.setId(22);
user.setUserName("test");
user.setRealName("测试");
// 新增iUserService.save(user);
Userresult1=iUserService.getOne(newQueryWrapper<User>().lambda().eq(User::getId,user.getId()));
System.out.println("新增后数据:"+result1);
// 修改user.setPassWord("密码");
iUserService.updateById(user);
Userresult2=iUserService.getById(user.getId());
System.out.println("修改后数据:"+result2);
// 获取全部数据List<User>result3=iUserService.list();
System.out.println("获取全部数据:"+result3);
// 删除数据iUserService.removeById(user.getId());
// 获取全部数据List<Map<String, Object>>result4=iUserService.listMaps();
System.out.println("再次获取全部map数据:"+result4);
// 再次新增iUserService.saveOrUpdate(user);
// 获取全部数据List<Integer>list=newArrayList<>();
list.add(user.getId());
List<User>result5=iUserService.listByIds(list);
System.out.println("再次获取全部map数据:"+result5);
// 再次删除iUserService.removeById(user);
// 新增多个Useruser2=newUser();
user2.setId(23);
user2.setUserName("test2");
user2.setRealName("测试2");
List<User>userList=newArrayList<>();
userList.add(user);
userList.add(user2);
iUserService.saveBatch(userList);
//QueryWrapper<User>userQueryWrapper=newQueryWrapper<>();
userQueryWrapper.eq(true, "user_name", user2.getUserName());
List<User>result6=iUserService.list(userQueryWrapper);
System.out.println("再次获取全部数据:"+result6);
return"ok";
    }
}

四、测试结果

image.png


还有一些配置:

server.port=8080spring.datasource.username=rootspring.datasource.password=rootspring.datasource.url=jdbc:mysql://localhost:3306/xinghua?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=UTCspring.datasource.driver-class-name=com.mysql.cj.jdbc.Driverlogging.level.com.xing.springBootMybatisPlus=debugmybatis-plus.check-config-location=truemybatis-plus.configuration.cache-enabled=falsemybatis-plus.configuration.map-underscore-to-camel-case=truemybatis-plus.configuration.auto-mapping-behavior=fullmybatis-plus.mapper-locations=classpath*:mapper/*Mapper.xmlmybatis-plus.global-config.db-config.logic-not-delete-value=1mybatis-plus.global-config.db-config.logic-delete-value=0


总结:

       MybatisPlus就是默认给我们提供了一些API,看上图特性中,还提供和了很多分页、主键生成等功能,可用的时候可以去官网查看例子。


点击原文或者直接去官网:

https://mp.baomidou.com/guide/


END

相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
2月前
|
Java 数据库连接 Maven
mybatis使用一:springboot整合mybatis、mybatis generator,使用逆向工程生成java代码。
这篇文章介绍了如何在Spring Boot项目中整合MyBatis和MyBatis Generator,使用逆向工程来自动生成Java代码,包括实体类、Mapper文件和Example文件,以提高开发效率。
122 2
mybatis使用一:springboot整合mybatis、mybatis generator,使用逆向工程生成java代码。
|
3月前
|
缓存 前端开发 Java
【Java面试题汇总】Spring,SpringBoot,SpringMVC,Mybatis,JavaWeb篇(2023版)
Soring Boot的起步依赖、启动流程、自动装配、常用的注解、Spring MVC的执行流程、对MVC的理解、RestFull风格、为什么service层要写接口、MyBatis的缓存机制、$和#有什么区别、resultType和resultMap区别、cookie和session的区别是什么?session的工作原理
【Java面试题汇总】Spring,SpringBoot,SpringMVC,Mybatis,JavaWeb篇(2023版)
|
7月前
|
XML Java 应用服务中间件
3:SpringBoot-Java Spring
3:SpringBoot-Java Spring
45 0
|
SQL druid Java
java之路 —— SpringBoot整合MyBatis
java之路 —— SpringBoot整合MyBatis
140 0
|
Java 关系型数据库 MySQL
Java:SpringBoot整合MyBatis-Plus实现MySQL数据库的增删改查
Java:SpringBoot整合MyBatis-Plus实现MySQL数据库的增删改查
483 0
|
SQL Java Maven
Java:Spring Boot整合mybatis-plus示例
Java:Spring Boot整合mybatis-plus示例
215 0
|
Java 数据库连接 API
|
XML 数据库 数据格式
Java--SpringBoot-43-Mybatis-11-MybatisPlus Generator代码生成器
MybatisPlus也提供了代码生成器,并且更加厉害,能直接生成controller、service、mapper、xml等,并且还支持各种配置。
222 0
Java--SpringBoot-43-Mybatis-11-MybatisPlus Generator代码生成器
|
XML Java 数据库连接
Java--SpringBoot-42-Mybatis-10-逆向工程
在开发中,我们使用Mybatis最麻烦的就是写每个表对应的Mapper接口及XML配置文件,当然还有实体类,既然每个单表都有对应的一套,那么肯定就有自动生成这些代码文件的工具,那就是代码生成器:逆向工程-MyBatis generator。
123 0
Java--SpringBoot-42-Mybatis-10-逆向工程
|
XML SQL Java
Java--SpringBoot-39-Mybatis-7-映射器
在前面的笔记里,我们发现在Mapper接口中,使用了@Secelet等注解的方法,就不需要在xml中编写方法签名对应的标签。这是因为,在初期 MyBatis 是一个 XML 驱动的框架。配置信息是基于 XML 的,映射语句也是定义在 XML 中的。后来在 MyBatis 3 中提供了基于 Java 语言的API配置方式,也就是注解。注解提供了一种简单且低成本的方式来实现简单的映射语句。
142 0
Java--SpringBoot-39-Mybatis-7-映射器