欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 新闻 > 社会 > 【无标题】

【无标题】

2025/5/13 20:12:43 来源:https://blog.csdn.net/qq_68981706/article/details/147876662  浏览:    关键词:【无标题】

MyBatis-Plus 基础知识点总结

一、框架简介

基于 MyBatis 的增强工具,通过简化 CRUD 操作和提供便捷功能提升开发效率,核心特性包括:

  • 无侵入:只做增强,原有功能不受影响
  • 自动 CRUD:内置通用 Mapper 和 Service
  • 条件构造器:支持链式调用
  • 多种插件:分页、性能分析、乐观锁等
二、核心功能
  1. 通用 CRUD
// BaseMapper 接口示例
public interface UserMapper extends BaseMapper<User> {}// 使用示例
userMapper.insert(user); 
User user = userMapper.selectById(1L);

  1. 条件构造器
QueryWrapper<User> wrapper = new QueryWrapper<>();
wrapper.like("name", "张").between("age", 20, 30).orderByDesc("create_time");LambdaQueryWrapper<User> lambdaWrapper = new LambdaQueryWrapper<>();
lambdaWrapper.eq(User::getStatus, 1);

  1. 分页插件
// 配置类添加
@Bean
public MybatisPlusInterceptor paginationInterceptor() {MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();interceptor.addInnerInterceptor(new PaginationInnerInterceptor());return interceptor;
}// 使用示例
Page<User> page = new Page<>(1, 10);
IPage<User> userPage = userMapper.selectPage(page, wrapper);

  1. **代码生成器
AutoGenerator generator = new AutoGenerator();
generator.setGlobalConfig(config).setDataSource(dataSourceConfig).setPackageInfo(packageConfig).execute();

三、常用注解
注解说明示例
@TableName指定实体对应表名@TableName("sys_user")
@TableId标识主键字段@TableId(type = IdType.AUTO)
@TableField字段映射@TableField("user_name")
@Version乐观锁版本字段@Version
@EnumValue枚举类型与数据库值映射@EnumValue
四、配置示例(application.yml)
mybatis-plus:global-config:db-config:id-type: autotable-prefix: t_configuration:log-impl: org.apache.ibatis.logging.stdout.StdOutImpl# 逻辑删除配置global-config:db-config:logic-delete-field: deletedlogic-delete-value: 1logic-not-delete-value: 0

五、特性扩展
  • 乐观锁:通过版本号控制并发修改
  • 自动填充@TableField(fill = FieldFill.INSERT)
  • 逻辑删除:配置后自动过滤已删除数据
  • SQL 注入器:支持自定义全局方法

提示:建议结合 Spring Boot 使用,通过 starter 依赖可快速集成。实际开发中注意合理使用 lambda 表达式保持类型安全,避免字段硬编码。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词