一,代码生成器
- 下载插件
- 配置数据库信息
- 代码生成
二,静态工具
静态根据包含了其他的CRUD所有操作,之所以引入静态工具是为了防止Service之间相互调用导致的依赖循环。
三,逻辑删除
逻辑删除是一种优雅的数据管理策略,它通过在数据库中标记记录为“已删除”而非物理删除,来保留数据的历史痕迹,同时确保查询结果的整洁性。MyBatis-Plus 提供了便捷的逻辑删除支持,使得这一策略的实施变得简单高效。
使用方法:
- 在
application.yml
中配置 MyBatis-Plus 的全局逻辑删除属性:mybatis-plus: global-config: db-config: logic-delete-field: flag # 全局逻辑删除字段名 logic-delete-value: 2 # 逻辑已删除值 logic-not-delete-value: 0 # 逻辑未删除值
- 在实体类中,对应数据库表的逻辑删除字段上添加
@TableLogic
注解import com.baomidou.mybatisplus.annotation.TableLogic; public class User { // 其他字段... @TableLogic private Integer flag; }
- 我们需要在数据库表这个字段设置默认值,要不然插入操作会导致这个字段为null的
四,枚举处理器
Java数据类型和数据库类型之间的转换底层采用的是Mybatis的
TypeHandler
类,他自带一个EnumOrdinalTypeHandler
枚举类型处理器,但是写的不好,MybatisPlus在基础上扩展了MybatisEnumTypeHandler
来实现枚举处理器
使用方法:
-
在枚举类中标识要进行转换的字段
@Getter @AllArgsConstructor public enum GradeEnum { PRIMARY(1, "小学"), SECONDARY(2, "中学"), HIGH(3, "高中"); @EnumValue // 标记数据库存的值是code private final int code; // 其他属性... }
-
在application配置文件中配置全局枚举处理器
mybatis-plus: configuration: default-enum-type-handler: com.baomidou.mybatisplus.core.handlers.MybatisEnumTypeHandler
-
枚举默认以英文名返回,如果想返回value,如下处理
public enum GradeEnum { PRIMARY(1, "小学"), SECONDORY(2, "中学"), HIGH(3, "高中"); GradeEnum(int code, String descp) { this.code = code; this.descp = descp; } @EnumValue @JsonValue // 标记响应json值 private final int code; }
五,JSON处理器
在数据库中有JSON数据类型存储了info信息,我们一般用String接受,也可以通过MybatisPlus
的JSON处理器,通过UserInfo
类来接受他。
使用方法如下:
- 在类上加上
@TableName(value="user",autoResultMap=true)
- 在对应的字段加上
@TableField=JacksonTypeHandler.class)