-
-
-
-
- 一、概述:
-
-
-
-
二、创建Spring boot项目集成MP 常用方法
-
①:配置依赖文件:
-
-
-
-
- ②:在pom.xml 文件内加入所需要得依赖。
-
-
-
-
③:创建实体类
-
-
-
-
- ④:创建dao层并继承实体类包:
-
-
-
-
⑤:测试常用方法
-
- 一、查询功能:
-
二、插入功能并实现主键自增:
-
三、更新操作并实现时间自动填充功能:
-
四、乐观锁使用(拓展):
-
在数据库和内添加version字段:
-
在实体类中加入version字段:
-
添加后得结果:
-
乐观锁配置:
-
测试类编写:
-
五、查询操作:
-
根据ID 查询某位用户得信息:
-
根据ID查询多为用户得信息,封装为List
-
根据条件查询用户信息,封装为Map
-
六、分页查询:
-
本次学习使用 Mp内置得分页插件:
-
-
-
-
-
- 七、删除操作:
-
-
-
-
-
逻辑删除操作学习:
-
逻辑删除操作步骤:
MyBatis-Plus (opens new window)(简称 MP)是一个 MyBatis (opens new window)的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。
- 特性:
无侵入:只做增强不做改变,引入它不会对现有工程产生影响,如丝般顺滑
损耗小:启动即会自动注入基本 CURD,性能基本无损耗,直接面向对象操作
强大的 CRUD 操作:内置通用 Mapper、通用 Service,仅仅通过少量配置即可实现单表大部分 CRUD 操作,更有强大的条件构造器,满足各类使用需求
支持 Lambda 形式调用:通过 Lambda 表达式,方便的编写各类查询条件,无需再担心字段写错
支持主键自动生成:支持多达 4 种主键策略(内含分布式唯一 ID 生成器 - Sequence),可自由配置,完美解决主键问题
支持 ActiveRecord 模式:支持 ActiveRecord 形式调用,实体类只需继承 Model 类即可进行强大的 CRUD 操作
支持自定义全局通用操作:支持全局通用方法注入( Write once, use anywhere )
内置代码生成器:采用代码或者 Maven 插件可快速生成 Mapper 、 Model 、 Service 、 Controller 层代码,支持模板引擎,更有超多自定义配置等您来使用
内置分页插件:基于 MyBatis 物理分页,开发者无需关心具体操作,配置好插件之后,写分页等同于普通 List 查询
分页插件支持多种数据库:支持 MySQL、MariaDB、Oracle、DB2、H2、HSQL、SQLite、Postgre、SQLServer 等多种数据库
内置性能分析插件:可输出 Sql 语句以及其执行时间,建议开发测试时启用该功能,能快速揪出慢查询
内置全局拦截插件:提供全表 delete 、 update 操作智能分析阻断,也可自定义拦截规则,预防误操作
二、创建Spring boot项目集成MP 常用方法 ①:配置依赖文件:===================================================================
spring.datasource.driver-class- name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/mydb_test?useSSL=true&useUnicode=true&serverTimezone=UTC&characterEncoding=utf-8
spring.datasource.username=
spring.datasource.password=
#配置日志
mybatis-plus.configuration.log- impl=org.apache.ibatis.logging.stdout.StdOutImpl
说明:配置日志功能是为了在控制台显示出执行了哪些SQL 语句。(正式开发中一般时不配置得。。。)
②:在pom.xml 文件内加入所需要得依赖。mysql
mysql-connector-java
8.0.22
org.projectlombok
lombok
1.18.2
provided
com.alibaba
fastjson
1.2.13
io.springfox
springfox-swagger2
2.7.0
io.springfox
springfox-swagger-ui
2.7.0
com.baomidou
mybatis-plus-boot-starter
3.0.5
③:创建实体类===================================================================
===================================================================
④:创建dao层并继承实体类包: ⑤:测试常用方法 一、查询功能:@SpringBootTest
class SpringbootStudyApplicationTests {
@Autowired
private UserMapper userMapper;
@Test
void contextLoads() {
//查询全部用户
List list = userMapper.selectList(null);
list.forEach(System.out::println);
}
二、插入功能并实现主键自增:注意点:
1、需要在数据库中开启主键自增
2、在对应数据中ID得实体类得主键加上注解:
@TableId(type = IdType.AUTO) //自增主键ID
//测试自动插入
@Test
public void InsertTest(){
User user = new User();
user.setName(“志强学Spring”);
user.setAge(1);
user.setEmail(“2294506817@qq.com”);
user.setCreate_time(new Date());
int result = userMapper.insert(user);
if (result >0){
System.out.println(“插入成功!”);
}
System.out.println(user);
}
查询数据库显示:
三、更新操作并实现时间自动填充功能:①:在数据库加入创建时间、更新时间字段
②:在Java实体类中加入上面两个字段(类型为:java.util.Date)
③:加上注解:
④:编写处理器处理上面两个注解:’
注解:@Slf4j
@Component
四、乐观锁使用(拓展): 在数据库和内添加version字段:sql 方式添加字段:
alter table user add version int;
为字段添加默认值:
在实体类中加入version字段: 添加后得结果: 乐观锁配置: 测试类编写:ALTER TABLE user ADD versin int DEFAULT 1 COMMENT ‘版本号’;
@Test
public void versionTest(){
User user = userMapper.selectById(11L);
user.setName(“奔驰得小野马”);
user.setAge(8);
user.setEmail(“20878026333@qq.com”);
userMapper.updateById(user);
}
更新完成之后发现版本变为2 了。。。
五、查询操作: 根据ID 查询某位用户得信息: 根据ID查询《一线大厂Java面试题解析+后端开发学习笔记+最新架构讲解视频+实战项目源码讲义》
【docs.qq.com/doc/DSmxTbFJ1cmN1R2dB】 完整内容开源分享
多为用户得信息,封装为List
测试案例:
@Test
public void QueryIdBy2(){
List list = userMapper.selectBatchIds(Arrays.asList(1L,2L,3L,4L,5L));
for (User user : list) {
System.out.println(user);
}
- 返回信息:
@Test
public void MapselectBatchIds(){
HashMap
map.put(“name”,“贺老师”);
List Users = userMapper.selectByMap(map);
Users.forEach(System.out::println);
}
- 返回信息:



