若依前后端分离版本集成Mybatis-plus

  • 一、为什么要集成Mybatis-plus
    • 简介
    • 特性
  • 二、集成Mybatis-plus
    • 导入依赖
    • 修改application.yml 配置文件
    • 修改service、serviceImpl、mapper
  • 三、若依框架需要注意的地方
    • 注释MyBatisConfig
    • 取消实体类继承若依封装的BaseEntity
  • 总结

一、为什么要集成Mybatis-plus

简介

MyBatis-Plus (opens new window)(简称 MP)是一个 MyBatis (opens new window)的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。

特性

  • 无侵入:只做增强不做改变,引入它不会对现有工程产生影响,如丝般顺滑

  • 损耗小:启动即会自动注入基本 CURD,性能基本无损耗,直接面向对象操作

  • 强大的 CRUD 操作:内置通用 Mapper、通用 Service,仅仅通过少量配置即可实现单表大部分 CRUD 操作,更有强大的条件构造器,满足各类使用需求

  • 支持 Lambda 形式调用:通过 Lambda 表达式,方便的编写各类查询条件,无需再担心字段写错

  • 支持主键自动生成:支持多达 4 种主键策略(内含分布式唯一 ID 生成器 - Sequence),可自由配置,完美解决主键问题

  • 支持 ActiveRecord 模式:支持 ActiveRecord 形式调用,实体类只需继承 Model 类即可进行强大的 CRUD 操作

  • 支持自定义全局通用操作:支持全局通用方法注入( Write once, use anywhere )

  • 内置代码生成器:采用代码或者 Maven 插件可快速生成 Mapper 、 Model 、 Service 、 Controller 层代码,支持模板引擎,更有超多自定义配置等您来使用

  • 内置分页插件:基于 MyBatis 物理分页,开发者无需关心具体操作,配置好插件之后,写分页等同于普通 List 查询

  • 分页插件支持多种数据库:支持 MySQL、MariaDB、Oracle、DB2、H2、HSQL、SQLite、Postgre、SQLServer 等多种数据库

  • 内置性能分析插件:可输出 Sql 语句以及其执行时间,建议开发测试时启用该功能,能快速揪出慢查询

  • 内置全局拦截插件:提供全表 delete 、 update 操作智能分析阻断,也可自定义拦截规则,预防误操作

    业务需求:使用逻辑删除,避免数据的误操作删除,以及为了保存数据,方便统计

二、集成Mybatis-plus

导入依赖

<!-- mybatis-plus --><dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>3.3.0</version></dependency><dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-extension</artifactId><version>3.3.0</version></dependency><dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-core</artifactId><version>3.3.0</version></dependency><dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus</artifactId><version>3.3.0</version></dependency>

如果原来使用了mybatis 的,最好是把mybatis 的依赖去除,避免冲突。

修改application.yml 配置文件

# MyBatis-plus配置
mybatis-plus:mapper-locations: classpath*:mapper/**/*Mapper.xml#实体扫描,多个package用逗号或者分号分隔typeAliasesPackage: com.lz.scrm.**.domainconfiguration:map-underscore-to-camel-case: truecache-enabled: falseglobal-config:banner: false#刷新mapper 调试神器refresh: truedb-config:#主键类型  0:"数据库ID自增", 1:"用户输入ID",2:"全局唯一ID (数字类型唯一ID)", 3:"全局唯一ID UUID";id-type: auto#字段策略 0:"忽略判断",1:"非 NULL 判断"),2:"非空判断"field-strategy: not_empty#驼峰下划线转换db-column-underline: true#设置表前缀#table-prefix: sys_#数据库大写下划线转换#capital-mode: true#序列接口实现类配置#key-generator: com.baomidou.springboot.xxx#逻辑删除配置logic-delete-field: deleted  # 全局逻辑删除的实体字段名(since 3.3.0,配置后可以忽略不配置步骤2)logic-delete-value: 1logic-not-delete-value: 0#数据库类型db-type: mysql#自定义SQL注入器#sql-injector: com.baomidou.mybatisplus.mapper.LogicSqlInjector#自定义填充策略接口实现#meta-object-handler: com.baomidou.springboot.xxx

修改service、serviceImpl、mapper

注意导入的依赖是否没有问题

import com.baomidou.mybatisplus.extension.service.IService;public interface IStudyTopicTypeService extends IService<StudyTopicType> {}
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;public class StudyTopicTypeServiceImpl extends ServiceImpl<StudyTopicTypeMapper,StudyTopicType> implements IStudyTopicTypeService {}
import com.baomidou.mybatisplus.core.mapper.BaseMapper;@Repository
public interface StudyTopicTypeMapper extends BaseMapper<StudyTopicType> {

三、若依框架需要注意的地方

注释MyBatisConfig

因为若依自己封装了Mybatis支持*匹配扫描包,所以你集成mybatis-plus 的时候需要把这个类给注释掉

路径在:
framework.config.MyBatisConfig

取消实体类继承若依封装的BaseEntity

若依自己封装了一个BaseEntity Entity基类,我们要集成mybatis-plus ,就需要去掉这个;两种方式:1.直接什么都不继承,干干净净;2. 继承Mybatis-plus 的 Model

1.什么都不继承

@Data
@AllArgsConstructor
@NoArgsConstructor
public class StudyTopicType extends BaseEntity {}

2.继承Mybatis-plus 的 Model

@Data
@AllArgsConstructor
@NoArgsConstructor
public class StudyTopicType extends Model<StudyTopicType> {}

总结

因为对若依系统的不熟悉,所以折腾了大半天,还是没弄出来,然后加了一位集成过的大佬,经过多次请教,在大佬不厌其烦的指导下,终于是成功集成了Mybatis-plus,特别感谢这位大佬!
然后呢,一些其他的配置什么的,也是在该文章内得到了指导,非常感谢该文章的作者!
在这,也是把自己集成的一个经历发出来,给需要的人一个参考,如果错误的地方,望指出。

https://blog.csdn.net/typ1805/article/details/84649606

若依前后端分离版本集成Mybatis-plus相关推荐

  1. 若依前后端分离版本集成CAS Server5.3

    前言 此次项目向使用RuoYi-Vue版本做开发,需要进行单点登录,在做完一次集成后形成了这篇文章,有不足之处望请谅解.因为前后端分离版本和不分离版本有区别集成方式也不太一样,主要区分是在单点登录退出 ...

  2. SpringCloud学习笔记018---SpringBoot前后端分离_集成_SpringSecurity_简单实现

    SpringBoot前后端分离_集成_SpringSecurity_简单实现 1.新建SpringBoot项目,可以使用idea,快速创建    file-create-project->选择w ...

  3. 若依框架入门搭建(前后端分离版本)-重点IDEA 、Navicat、sql、node、redis、windows11

    一直想搭一款后台管理系统,看了很多优秀的开源项目但是发现没有合适自己的.于是利用空闲休息时间开始自己搭了一套后台系统(基于windows11系统). 官方网站文档用Eclipse搭建,官方只用简单的几 ...

  4. 若依前后端分离版本如何使用Swagger

    对于若依前后端分离版本,我们应该如何使用Swagger在线接口文档呢? 目录 一.访问接口文档地址 二.修改后端配置文件 三.获取登录token

  5. 若依前后端分离框架集成websocket

    1. 若依不分离框架集成websocket可以参照http://doc.ruoyi.vip/ruoyi/document/cjjc.html#%E9%9B%86%E6%88%90websocket%E ...

  6. 前后端分离项目集成PageOffice——实现在线编辑Word文件的版本控制

    说明: PageOffice本身提供了SaveFilePage的js方法,但是由于该方法不支持代理且不能跨域导致在前后端分离项目中无法使用 功能:实现三个按钮分别保存不同版本的文件 1.PageOff ...

  7. 若依前后端分离版本,Windows下使用Nginx代理的方式进行部署(全流程,图文教程)

    场景 若依官网: http://doc.ruoyi.vip/ 前提: 服务器上安装Mysql,并将数据库导入,在SpringBoot中的application-druid.yml配置mysql数据库连 ...

  8. 若依RuoYi-Vue项目部署(前后端分离版本)

    一.简介 RuoYi是一个后台管理系统,基于经典技术组合(Spring Boot.Apache Shiro.MyBatis.Thymeleaf)主要目的让开发者注重专注业务,降低技术难度,从而节省人力 ...

  9. 若依集成CIM(即时推送系统)实现将服务端修改为SpringBoot+Vue前后端分离版(文末见代码下载)

    场景 若依前后端分离版本地搭建开发环境并运行项目的教程: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/108465662 CIM ...

最新文章

  1. Nginx——负载均衡
  2. MYSQL中LIMIT用法_后台分页
  3. 自检代码中trustmanager漏洞_2020-11微软漏洞通告
  4. php防止恶意充值,php防止恶意刷新与刷票的方法
  5. bgp 建立邻居发送的报文_OSPF报文,SPF算法,邻居关系建立及排错,理论+实战
  6. Codeforces 86C Genetic engineering (AC自己主动机+dp)
  7. 【转】JQuery中$.each 和$(selector).each()的区别详解
  8. Android studio 下载SDK
  9. FPV穿越机飞行入门练习
  10. Intellij IDEA中拉svn分支
  11. 安装 3dsMax 2020 there is problem 错误
  12. android之Fragment(官网资料翻译),高级Android开发必看
  13. 专业技术问题:UI设计师岗位面试反馈的常见问题
  14. 前端页面分辨率适配问题
  15. Linux安装wordpress
  16. 【Linux学习笔记】线程同步 之 信号量 之 sem_t结构体
  17. 网秦创始人林宇称遭史文勇非法拘禁 后者称是恶意中伤
  18. 大数据--数据仓库--维度退化
  19. 洛谷P1462 通往奥格瑞玛的道路
  20. 干货!使用Geotools解析shap数据实例

热门文章

  1. 使用Hadoop提取网络日志KPI指标
  2. 阿里云天池大赛赛题(机器学习)——阿里云安全恶意程序检测(完整代码)
  3. 组播PIM-原理介绍+报文分析+配置示例
  4. 2019年市面上360全景相机大比拼 Insta360 Pro 2,得图Detu F4 Plus,理光Theta SC,GoPro Fusion,Nikon尼康KeyMission 360
  5. 使用奥维地图加载星图地球数据云地图数据
  6. 大数据开发面试题总结-超详细
  7. 换分币c语言程序,编写程序输出用一元人民币兑换成1分、2分和5分硬币的不同兑换方法...
  8. C语言 % x的作用,关于c语言%#X意思大全
  9. 安卓android获取存储路径,Android系统的手机文件夹目录详解
  10. ST公司向STM32客户免费提供STemWin软件