MyBatisPlus博客 1 (重要) :
学习MyBatis-Plus3这一篇就够了_轻松的小希的博客-CSDN博客_mybatisplus3
MetaObjectHandler接口是mybatisPlus为我们提供的的一个扩展接口,我们可以利用这个接口在我们插入或者更新数据的时候,为一些字段指定默认值。实现这个需求的方法不止一种,在sql层面也可以做到,在建表的时候也可以指定默认值。
mybatisPlus属性自动填充配置之MetaObjectHandler接口实战_张子行的博客的博客-CSDN博客_metaobjecthandler
MyBatisPlus博客 2:
mybatis-plus超详细讲解_?Handsome?的博客-CSDN博客_mybatisplus
MyBatisPlus官方文档:(重要)
mybatis-plus自定义sql分页:
注意mapper中的参数需要加@Param("xxxx")
mybatis-plus自定义sql分页_代码小菜的博客-CSDN博客_mybatisplus 自定义分页
mybatis-plus save后获取保存后的主键: 直接getid即可
------------------------------------------------------------------------------------------------------------------------------
关闭开启MyBatisPlus的sql日志:
开启打印
Mybatis-plus 需要通过下面的方式开启控制台 SQL 日志打印
mybatis-plus:
configuration:
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
---------------------------------------------------------------
关闭打印
在生产环境,不想打印 SQL 日志,可以通过下面的配置关闭。
mybatis-plus:
configuration:
log-impl: org.apache.ibatis.logging.nologging.NoLoggingImpl
注解
@TableId:它对应的是将数据库的主键进行映射。如果没有这个注解,调用mybatis-plus中的一些根据主键id进行操作的方法,就会导致方法无法找到主键,使得方法所要进行的操作无效。
@TableField:映射数据库中的其他普通字段,其注解中有一个属性exist,如果将其设置为false,则默认这个属性不经过数据库字段的映射。
@TableField和@TableId的意义主要是用到其中括号中配置的含义,如果已经在其他配置中有生效的,可以不用注解@TableField和@TableId。(暂时个人理解)
@TableLogic 逻辑删除的注解
步骤 1: 配置com.baomidou.mybatisplus.core.config.GlobalConfig$DbConfig
- 例: application.yml(逻辑删除有默认值可以不配置这些)
mybatis-plus:
global-config:
db-config:
logic-delete-field: flag # 全局逻辑删除的实体字段名(since 3.3.0,配置后可以忽略不配置步骤2)
logic-delete-value: 1 # 逻辑已删除值(默认为 1)
logic-not-delete-value: 0 # 逻辑未删除值(默认为 0)
步骤 2: 实体类字段上加上@TableLogic
注解
@TableLogic
private Integer deleted;
使用逻辑删除后,查询(不需要额外条件)会排除is_delete=1,删除自动会走逻辑删除,表字段需要设置is_delete的默认值为0
pagehelper分页插件和mybatisplus分页插件冲突导致mybatisplus分页查询报错的兼容解决办法
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper-spring-boot-starter</artifactId>
<version>1.4.1</version>
<exclusions>
<exclusion>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
</exclusion>
<exclusion>
<groupId>org.mybatis</groupId>
<artifactId>mybatis-spring</artifactId>
</exclusion>
<exclusion>
<groupId>com.github.jsqlparser</groupId>
<artifactId>jsqlparser</artifactId>
</exclusion>
</exclusions>
</dependency>
简化myabtisplus代码:
Wrappers
MyBatis-Plus 提供了 Wrappers
类,它是一个静态工厂类,用于快速创建 QueryWrapper
、UpdateWrapper
、LambdaQueryWrapper
和 LambdaUpdateWrapper
的实例。使用 Wrappers
可以减少代码量,提高开发效率。
示例:
// 创建 QueryWrapper
QueryWrapper<User> queryWrapper = Wrappers.<实体>query();
queryWrapper.eq("name", "张三");
// 创建 LambdaQueryWrapper
LambdaQueryWrapper<User> lambdaQueryWrapper = Wrappers.<实体>lambdaQuery();
lambdaQueryWrapper.eq(User::getName, "张三");
// 创建 UpdateWrapper
UpdateWrapper<User> updateWrapper = Wrappers.<实体>update();
updateWrapper.set("name", "李四");
// 创建 LambdaUpdateWrapper
LambdaUpdateWrapper<User> lambdaUpdateWrapper = Wrappers.<实体>lambdaUpdate();
lambdaUpdateWrapper.set(User::getName, "李四");