当前位置: 首页 > news >正文

若依管理系统后端将 Mybatis 升级为 Mybatis-Plus

文章目录

  • 说明
  • 流程
    • 增加依赖
    • 修改配置文件
    • 注释掉MybatisConfig里面的Bean
  • 代码生成
    • 使用IDEA生成代码
      • 注意
    • Controller文件

说明

若依管理系统是一个非常完善的管理系统模板,里面含有代码生成的方法,可以帮助用户快速进行开发,但是项目使用的是mybatis,对于熟悉使用mybatis-plus进行开发的小伙伴们不是很便捷,本文主要讲解如何在不影响系统现有功能的基础上,将mybatis升级为mybatis-plus,以帮助小伙伴们更快速地开发。

流程

增加依赖

【首先修改父模块的pom.xml文件】
在这里插入图片描述

分别在properties标签内和dependencies标签内增加内容,所需增加的内容如下面的xml

    <properties><mybatis-plus.version>3.2.0</mybatis-plus.version></properties><!-- 依赖声明 --><dependencyManagement><dependencies><!-- mybatis-plus --><dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>${mybatis-plus.version}</version></dependency></dependencies></dependencyManagement>

【其次修改common包下的pom.xml文件】
在这里插入图片描述

直接在dependencies标签内增加如下内容即可,因为父模块已经管理了版本,这里不需要再声明版本

 <dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId></dependency>

修改配置文件

需要修改admin包下的application.yml文件

在这里插入图片描述
在这里插入图片描述
注释掉mybatis的配置之后(mybatis-plus是兼容mybatis的,小伙伴们放心注释就行),增加mybatis-plus的配置,配置如下

mybatis-plus:mapper-locations: classpath*:mapper/**/*Mapper.xmltype-aliases-package: com.ruoyi.**.domainglobal-config:db-config:id-type: autoconfiguration:map-underscore-to-camel-case: truecache-enabled: falselog-impl: org.apache.ibatis.logging.stdout.StdOutImpl

注释掉MybatisConfig里面的Bean

系统会自动根据配置文件构建mybatisplus相关的Bean,所以这里也不需要修改成mybatis-plus的

在这里插入图片描述
修改之后记得重新 install framework包,这样修改才会生效

在这里插入图片描述

代码生成

上面的操作虽然是将mybatis-plus引入了,但是有小伙伴疑问了,使用若依管理系统自带的代码生成器,生成的还是mybatis的代码呀,那怎么办呢?

为了解决小伙伴们心中的疑惑,我这里提供一种解决思路,那就是结合IDEA生成的代码和若依代码生成器的代码

使用IDEA生成代码

首先安装下面的插件,记得安装1.5.5版本的插件,高版本的插件可能会有问题(我之前是安装的高版本,出问题之后才回退的),具体安装可以去阅读其他博主的教程

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

生成成功,由下图可知,除了controller外,其他代码都已经生成成功

在这里插入图片描述

注意

使用MybatisX生成的实体类是没有逻辑删除等注解的,如果需要使用逻辑删除,或者自动填充ID和时间,需要在实体类上面添加注解

Controller文件

Controller文件直接使用若依的代码生成器生成即可,使用这种方式生成的好处是,若依会生成对应的前端文件,这样可以直接搭配使用,不需要再去修改生成的api

在这里插入图片描述

虽然若依生成器生成了Controller代码,但是没办法直接将其进行应用,因为我们前面生成的Service文件使用的是mybatis-plus,所以还需要对Controller文件进行修改,修改的方式可以参考我下面的代码,当然这个代码还是非常不完善的,比如数据校验那些都没有

package com.shm.controller;import java.util.List;
import javax.servlet.http.HttpServletResponse;import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.ruoyi.common.core.domain.entity.Follow;
import com.ruoyi.common.core.domain.model.LoginUser;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import com.ruoyi.common.annotation.Log;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.enums.BusinessType;
import com.shm.service.IFollowService;
import com.ruoyi.common.utils.poi.ExcelUtil;
import com.ruoyi.common.core.page.TableDataInfo;/*** 关注Controller** @author dam* @date 2023-08-08*/
@RestController
@RequestMapping("/market/follow")
public class FollowController extends BaseController {@Autowiredprivate IFollowService followService;/*** 查询关注列表*/@PreAuthorize("@ss.hasPermi('shm:follow:list')")@GetMapping("/list")public TableDataInfo list(Follow follow) {startPage();List<Follow> list = followService.list(new QueryWrapper<Follow>(follow));return getDataTable(list);}/*** 导出关注列表*/@PreAuthorize("@ss.hasPermi('shm:follow:export')")@Log(title = "关注", businessType = BusinessType.EXPORT)@PostMapping("/export")public void export(HttpServletResponse response, Follow follow) {List<Follow> list = followService.list(new QueryWrapper<Follow>(follow));ExcelUtil<Follow> util = new ExcelUtil<Follow>(Follow.class);util.exportExcel(response, list, "关注数据");}/*** 获取关注详细信息*/@PreAuthorize("@ss.hasPermi('shm:follow:query')")@GetMapping(value = "/{id}")public AjaxResult getInfo(@PathVariable("id") Long id) {return success(followService.getById(id));}/*** 新增关注*/@PreAuthorize("@ss.hasPermi('shm:follow:add')")@Log(title = "关注", businessType = BusinessType.INSERT)@PostMappingpublic AjaxResult add(@RequestBody Follow follow) {// 设置商品主人LoginUser loginUser = getLoginUser();follow.setFollowerId(loginUser.getUserId());return toAjax(followService.save(follow));}/*** 修改关注*/@PreAuthorize("@ss.hasPermi('shm:follow:edit')")@Log(title = "关注", businessType = BusinessType.UPDATE)@PutMappingpublic AjaxResult edit(@RequestBody Follow follow) {return toAjax(followService.updateById(follow));}/*** 删除关注*/@PreAuthorize("@ss.hasPermi('shm:follow:remove')")@Log(title = "关注", businessType = BusinessType.DELETE)@DeleteMapping("/{ids}")public AjaxResult remove(@PathVariable List<Long> ids) {return toAjax(followService.removeByIds(ids));}
}
http://www.lryc.cn/news/116688.html

相关文章:

  • 剪切、复制、粘贴事件
  • Redis储存结构
  • 使用logback异步打印日志
  • ArcGIS Pro暨基础入门、制图、空间分析、影像分析、三维建模、空间统计分析与建模、python融合、案例应用
  • Rabbitmq的消息确认
  • 在飞机设计中的仿真技术
  • (2023Arxiv)Meta-Transformer: A Unified Framework for Multimodal Learning
  • 解决Python读取图片路径存在转义字符
  • Windows 安装 pandoc 将 jupyter 导出 pdf 文件
  • 混合云环境实现K8S可观测的6大策略
  • 音视频 FFmpeg命令行搭建
  • ​ORACLE wallet实现无需输入用户名与密码登陆数据库 注意修改目录权限
  • linux - 用户权限
  • 计蒜客T1115——字符串判等
  • Android Framework工具——EA画图
  • 使用MyEclipse如何部署Descriptor (XML)编辑器?
  • Codeforces Round 889 (Div. 2)C题题解
  • 无涯教程-Perl - Subroutines(子例程)
  • Rpc异步日志模块
  • python-pip
  • 无涯教程-Perl - getppid函数
  • AUTOSAR规范与ECU软件开发(基础篇)1.2 汽车电子控制系统的基本构成
  • 一个可以通过多个条件筛选的系统界面是如何实现的(springboot+mybatis)
  • WebRTC | 实现数据流的一对一通信
  • 基于MATLAB小波变换的信号突变点检测
  • JUC并发编程(JUC核心类、TimeUnit类、原子操作类、CASAQS)附带相关面试题
  • 个人用C#编写的壁纸管理器 - 开源研究系列文章
  • iTextSharp 生成PDF
  • 基于微信小程序的传染病酒店隔离平台设计与实现(Java+spring boot+MySQL+微信小程序)
  • vue3中用watch监听响应式数据的注意点