一、核心特性与快速集成
无侵入增强:MyBatis-Plus在MyBatis基础上只做增强不做改变,通过继承BaseMapper接口可直接使用预定义的CRUD方法
快速集成:
xml
Copy Code
可替代传统MyBatis的starter依赖
自动映射:基于实体类注解自动映射数据库表,支持驼峰与下划线自动转换
二、高效CRUD操作
基础Mapper用法:
java
Copy Code
public interface UserMapper extends BaseMapper
// 内置方法示例
userMapper.selectById(1);
userMapper.insert(user);
userMapper.updateById(user);
批量操作:
java
Copy Code
// 批量插入(性能优于循环单条插入)
userMapper.insertBatchSomeColumn(list);
条件构造器:
java
Copy Code
// Lambda表达式写法
LambdaQueryWrapper
wrapper.eq(User::getAge, 20)
.like(User::getName, "张");
userMapper.selectList(wrapper);
三、实用功能配置
逻辑删除:
yaml
Copy Code
mybatis-plus:
global-config:
db-config:
logic-delete-field: isDelete # 逻辑删除字段名
logic-delete-value: 1 # 删除标记值
logic-not-delete-value: 0 # 正常标记值
配置后删除操作自动转为更新
自动填充:
java
Copy Code
@TableField(fill = FieldFill.INSERT)
private LocalDateTime createTime;
@TableField(fill = FieldFill.INSERT_UPDATE)
private LocalDateTime updateTime;
分页插件:
java
Copy Code
@Configuration
public class MybatisPlusConfig {
@Bean
public MybatisPlusInterceptor mybatisPlusInterceptor() {
MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
interceptor.addInnerInterceptor(new PaginationInnerInterceptor());
return interceptor;
}
}
四、代码生成器
基础配置:
java
Copy Code
FastAutoGenerator.create("jdbc:mysql://localhost:3306/test", "root", "123456")
.globalConfig(builder -> builder.author("baomidou"))
.packageConfig(builder -> builder.parent("com.baomidou.mybatisplus"))
.strategyConfig(builder -> builder.addInclude("user_info"))
.execute();
生成内容:自动生成Entity、Mapper、Service、Controller等层代码
五、性能优化建议
批量处理:使用executeBatch替代循环单条SQL
二级缓存:谨慎开启,适合读多写少场景
SQL打印:开发环境可开启SQL日志,生产环境建议关闭
yaml
Copy Code
mybatis-plus:
configuration:
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
官方文档地址:
https://baomidou.com/pages/24112f
Tags:mybatis-plus删除