`
ckwang17
  • 浏览: 26271 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

mybatis-plus 极简使用指北

阅读更多

官网地址: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快速入门项目-mybatis-plus基本操作大全-附带sql+项目文档

    MyBatis-Plus(简称MP)是一个基于MyBatis框架的极简无注解的SQL操作工具。它包含了MyBatis的所有特性,并且在上面进行了扩展,如自动CRUD操作、主键自动生成、条件构造器等,极大地提高了开发效率。 2. **配置...

    Springboot+Mybatis-plus+ SpringMvc+Shiro+Redis企业级报表后台管理系统.rar

    项目描述 在上家公司自己集成的一套系统,用了两个多月的时间完成的: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-plus + SpringMvc + Shiro + Redis企业级报表后台管理系统

    项目描述 在上家公司自己集成的一套系统,用了两个多月的时间完成的:Springboot+Mybatis-plus+ SpringMvc+Shiro+Redis企业级开发系统 Springboot作为容器,使用mybatis作为持久层框架 使用官方推荐的thymeleaf做为...

    spring-boot-mybatis-plus 一套打通 有注释 打开就可使用

    标题中的“spring-boot-mybatis-plus”指的是将这两个框架集成使用,创建一个能够快速开发、高效运行的后端项目。这样的项目通常包含完整的配置和示例代码,使得开发者可以立即上手,无需从零开始配置环境。 描述中...

    Java企业报表管理系统源码

    项目技术:Springboot+Mybatis-plus+ SpringMvc+Shiro+Redis 项目描述: Springboot+Mybatis-plus+ SpringMvc+Shiro+Redis企业级开发系统 Springboot作为容器,使用mybatis作为持久层框架 使用官方推荐...

    springboot+oracle报表管理系统

    Springboot作为容器,使用mybatis作为持久层框架 使用官方推荐的thymeleaf做为模板引擎,shiro作为安全框架,主流技术 几乎零XML,极简配置 两套UI实现(bootstrap+layer ui),可以自由切换 报表后端采用技术: ...

    基于MateCloud的Springboot版本,更加轻量级,前端共用artemis+源代码+文档说明

    是一个基于SpringBoot3的快速开发平台,采用前后端分离的模式,前端采用Element Plus组件,后端采用SpringBoot3、Sa-token、Mybatis-Plus、Redis、RabbitMQ、FastDFS等核心技术,同时提供了代码生成器,能够快速生成...

    阿里云javasdk源码-jboot:基于SpringBoot2.x的前后端分离架构JBoot前台:Vue+iView后台:SpringBoo

    复杂业务逻辑需联表查询时可选择Mybatis-Plus写sql AOP操作日志记录方式任意切换 默认使用数据库记录记录,可配置切换使用Elasticseach记录,使用Spring-Data-Elasticsearch简化开发 极简代码生成 只需输入实体类名...

    狂胜说Mybatis.zip

    10. **Mybatis Plus**:虽然不是Mybatis官方的扩展,但Mybatis Plus是一个基于Mybatis的极简封装,提供了更丰富的 CRUD 操作,包括关联查询、主键自增、填充公共字段等功能,简化了开发工作。 在`Mybatis课堂笔记....

    zhangxingyu126.zip

    MyBatis Plus(mybatis_plus)是一个基于MyBatis的极简开发框架,它为MyBatis提供了诸如自动化 CRUD 操作、条件查询、填充实体对象等便捷功能,大大简化了数据库操作的代码量。在IDEA中安装MyBatis Plus插件可以帮助...

    java版商城源码下载-xboot:启动

    Mybatis-Plus 任意切换 操作日志记录方式任意切换Mysql或Elasticseach记录 极简代码生成 只需输入类名和字段 自动创建数据库表 动态权限管理 菜单按钮权限+数据权限配置 支持社交账号、短信等多方式登录 不干涉原...

Global site tag (gtag.js) - Google Analytics