官网地址:https://mybatis.plus
该东东对myBatis原有功能无改变,仅做增强。
添加依赖
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.0.6</version>
</dependency>
如果已经依赖 mybatis 需先移除;
最新版为3.2.0,但出现 java.lang.NoClassDefFoundError: org/mybatis/logging/LoggerFactory 异常,暂未解决;
如果需要使用代码生成器,再增加下面的依赖:
<dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-generator</artifactId> <version>3.0.6</version>
</dependency> <dependency> <groupId>org.freemarker</groupId> <artifactId>freemarker</artifactId> <version>2.3.29</version> </dependency>
配置
在mainCLass中增加注释: @MapperScan("com.akulaku.coupon.mapper") 指向我们存放mapper的路径
注解
在model类中增加注解:@TableName(value = "t_coupon") 指明该模型关联的表名
更多注解请参照 https://mybatis.plus/guide/annotation.html#tablename
mapper
创建 interface 如:
public interface CouponMapper extends BaseMapper<Coupon> {} 注意红色字体为我们ORM的model类;
在service方法中引用该mapper后调用该父类方法实现基础的CRUD操作,具体参考:
https://mybatis.plus/guide/crud-interface.html#mapper-crud-%E6%8E%A5%E5%8F%A3
亦可构造wrapper实现较为复杂的查询,具体api参照:https://mybatis.plus/guide/wrapper.html 如:
public CouponCommonResponse delCoupon(CouponRequest couponRequest) throws Exception { QueryWrapper<Coupon> wrapper = new QueryWrapper<>(); wrapper.eq("id",couponRequest.getId()); couponMapper.delete(wrapper); return CouponCommonResponse.success(); }
亦可如mybatis般自定义sql,如:
public interface CouponMapper extends BaseMapper<Coupon> { @Select("SELECT * FROM t_coupon where id = #{id}") Coupon selectCouponById(@Param("id") Long id); }
亦可配置xml实现更复杂的逻辑,与原mybatis无异;
分页插件
创建config类,如:
@Configuration public class MybatisPlusConfig {@Bean public PaginationInterceptor paginationInterceptor() { PaginationInterceptor paginationInterceptor = new PaginationInterceptor();return paginationInterceptor;}}
调用如:
import com.baomidou.mybatisplus.core.conditions.Wrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.segments.MergeSegments; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
public CouponCommonResponse selectCouponPage(Long uid,long current, long size){ Page<Coupon> page = new Page<>(current, size); IPage<Coupon> couponIPage = couponMapper.selectPage(page, new QueryWrapper<Coupon>().eq("uid", uid)); System.out.println("总条数 ------> " + couponIPage.getTotal()); System.out.println("当前页数 ------> " + couponIPage.getCurrent()); System.out.println("当前每页显示数 ------> " + couponIPage.getSize()); System.out.println("----- baseMapper 自带分页 ------"); return CouponCommonResponse.success(couponIPage); }
SQL执行效率插件
在config类中增加:
@Bean @Profile({"dev","test"})public PerformanceInterceptor performanceInterceptor() {return new PerformanceInterceptor().setMaxTime(100).setFormat(Boolean.TRUE); }
由于该插件较影响性能,所以仅开发和测试环境启用,该插件在3.2.0版本起被弃用;
MaxTime 为全局的单条SQL执行最大时长阈值,单位为毫秒,如果执行时间超过这个值就会抛出异常,此时我们需要优化该操作。
代码生成器
MyBatis-Plus 的代码生成器,通过 AutoGenerator 可以快速生成 Entity、Mapper、Mapper XML、Service、Controller 等各个模块的代码,但对于我们可能只有在自下而上的开发模式中将mysql表生成Entity时有用。参考:https://mybatis.plus/guide/generator.html#%E4%BD%BF%E7%94%A8%E6%95%99%E7%A8%8B
相关推荐
MyBatis-Plus(简称MP)是一个基于MyBatis框架的极简无注解的SQL操作工具。它包含了MyBatis的所有特性,并且在上面进行了扩展,如自动CRUD操作、主键自动生成、条件构造器等,极大地提高了开发效率。 2. **配置...
项目描述 在上家公司自己集成的一套系统,用了两个多月的时间完成的:Springboot+Mybatis-plus+ SpringMvc+Shiro+Redis企业级开发系统 Springboot作为容器,使用mybatis作为持久层框架 使用官方推荐的thymeleaf做为...
Springboot+Mybatis-plus+ SpringMvc+Shiro+Redis企业级报表后台管理系统Springboot+Mybatis-plus+ SpringMvc+Shiro+Redis企业级报表后台管理系统Springboot+Mybatis-plus+ SpringMvc+Shiro+Redis企业级报表后台管理...
项目描述 在上家公司自己集成的一套系统,用了两个多月的时间完成的:Springboot+Mybatis-plus+ SpringMvc+Shiro+Redis企业级开发系统 Springboot作为容器,使用mybatis作为持久层框架 使用官方推荐的thymeleaf做为...
标题中的“spring-boot-mybatis-plus”指的是将这两个框架集成使用,创建一个能够快速开发、高效运行的后端项目。这样的项目通常包含完整的配置和示例代码,使得开发者可以立即上手,无需从零开始配置环境。 描述中...
项目技术:Springboot+Mybatis-plus+ SpringMvc+Shiro+Redis 项目描述: Springboot+Mybatis-plus+ SpringMvc+Shiro+Redis企业级开发系统 Springboot作为容器,使用mybatis作为持久层框架 使用官方推荐...
Springboot作为容器,使用mybatis作为持久层框架 使用官方推荐的thymeleaf做为模板引擎,shiro作为安全框架,主流技术 几乎零XML,极简配置 两套UI实现(bootstrap+layer ui),可以自由切换 报表后端采用技术: ...
是一个基于SpringBoot3的快速开发平台,采用前后端分离的模式,前端采用Element Plus组件,后端采用SpringBoot3、Sa-token、Mybatis-Plus、Redis、RabbitMQ、FastDFS等核心技术,同时提供了代码生成器,能够快速生成...
复杂业务逻辑需联表查询时可选择Mybatis-Plus写sql AOP操作日志记录方式任意切换 默认使用数据库记录记录,可配置切换使用Elasticseach记录,使用Spring-Data-Elasticsearch简化开发 极简代码生成 只需输入实体类名...
10. **Mybatis Plus**:虽然不是Mybatis官方的扩展,但Mybatis Plus是一个基于Mybatis的极简封装,提供了更丰富的 CRUD 操作,包括关联查询、主键自增、填充公共字段等功能,简化了开发工作。 在`Mybatis课堂笔记....
MyBatis Plus(mybatis_plus)是一个基于MyBatis的极简开发框架,它为MyBatis提供了诸如自动化 CRUD 操作、条件查询、填充实体对象等便捷功能,大大简化了数据库操作的代码量。在IDEA中安装MyBatis Plus插件可以帮助...
Mybatis-Plus 任意切换 操作日志记录方式任意切换Mysql或Elasticseach记录 极简代码生成 只需输入类名和字段 自动创建数据库表 动态权限管理 菜单按钮权限+数据权限配置 支持社交账号、短信等多方式登录 不干涉原...