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

news2024/9/30 11:30:39

文章目录

  • 说明
  • 流程
    • 增加依赖
    • 修改配置文件
    • 注释掉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.xml
  type-aliases-package: com.ruoyi.**.domain
  global-config:
    db-config:
      id-type: auto
  configuration:
    map-underscore-to-camel-case: true
    cache-enabled: false
    log-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 {
    @Autowired
    private 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)
    @PostMapping
    public 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)
    @PutMapping
    public 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.coloradmin.cn/o/852540.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

单例模式_饿汉模式_懒汉模式(含线程安全写法)

前言 某个类在程序中只存在唯一一份实例&#xff0c;叫做单例模式。 目录 前言 一、饿汉模式 二、懒汉模式 &#xff08;一&#xff09;单线程写法 &#xff08;二&#xff09;线程安全写法 &#xff08;三&#xff09;线程安全和不安全写法的区别 结语 一、饿汉模式 …

分享windwosServer2012R--ISO镜像下载地址(含激活教程)

windowsServer2012R----急速网盘下载地址&#xff1a;点击下载 提取码&#xff1a;888999 激活下载&#xff1a;点击下载 提取码&#xff1a;888999

AI和GPT的崛起,对未来项目管理的影响与变革︱原微软项目经理陆敏

原微软项目经理和产品经理人才顾问陆敏先生受邀为由PMO评论主办的2023第十二届中国PMO大会演讲嘉宾&#xff0c;演讲议题&#xff1a;AI和GPT的崛起&#xff0c;对未来项目管理的影响与变革。大会将于8月12-13日在北京举办&#xff0c;敬请关注&#xff01; 议题简要&#xff1…

从LeakCanary看Service生命周期监控

作者&#xff1a;小海编码日记 大家都知道使用LeakCanary可以监控项目中存在的 内存泄漏 问题&#xff0c;那么LeakCanary是怎么实现的呢&#xff1f;LeakCanary通过检测程序中对象的引用关系&#xff0c;收集应该被回收的对象并标记&#xff0c;随后等待GC后&#xff0c;检查该…

线上电影票票务系统开发--APP、H5小程序、网站

一、系统架构 后端架构&#xff1a;采用微服务架构&#xff0c;包括API接口、业务逻辑层和数据访问层。使用云服务器进行数据存储&#xff0c;保证数据的安全性和稳定性。 前端架构&#xff1a;APP采用原生开发方式&#xff0c;前端与后端通过API接口进行数据交互。 二、功能…

司空见惯 - Realwear公司及产品介绍

基于安卓系统的头显设备&#xff0c;Android based headset display&#xff0c;集成了摄像头&#xff0c;还有个小显示屏。 设备价格很贵哦&#xff1a; 显示屏在前方&#xff1a; 官方网站&#xff1a;https://www.realwear.com/ RealWear head-mounted displays. Built to …

直播平台的秘密武器:揭秘流行直播实时美颜SDK的背后技术

近年来&#xff0c;随着社交媒体和直播平台的崛起&#xff0c;实时美颜成为了许多用户在分享自己生活的过程中的一项重要需求。无论是个人的自拍照片&#xff0c;还是主播在直播中的形象展示&#xff0c;美颜效果都直接影响着观众的视觉感受。而支撑这种实时美颜效果背后的技术…

uniapp 实现滑动视图切换 顶部滚动导航栏

无论小程序的时候一般有这个功能,在页面处于首页时候,滑动视图,切换视图顶部滚动导航也跟着切换 1.想要实现这个功能就需要实现顶部导航栏,首先实现顶部滚导航栏 点击高亮颜色显示 模板代码 <scroll-view scroll-x"true" class"scroll-content" > …

MySQL不知道密码,直接修改密码

很简单&#xff0c;我们跳过验证&#xff0c;直接进去修改就好 修改配置文件 vim /etc/my.cnf在[mysqld]下直接添加配置 skip-grant-tables如图&#xff1a; 保存&#xff0c;退出即可。 重启服务 service mysqld restart进入MySQL #(直接点击回车&#xff0c;密码为空)…

20230809在WIN10下使用python3将DOCX文件转换为TXT文件

20230809在WIN10下使用python3将DOCX文件转换为TXT文件 2023/8/9 11:38 python docx txt https://blog.51cto.com/u_16175446/6620474 如何实现Python读取word内容转为TXT的具体操作步骤 如何实现Python读取word内容转为TXT的具体操作步骤 原创 mob649e81576de12023-07-04 14:0…

伪原创文章生成器软件【php源码】

这篇文章主要介绍了python怎么做gui界面&#xff0c;具有一定借鉴价值&#xff0c;需要的朋友可以参考下。希望大家阅读完这篇文章后大有收获&#xff0c;下面让小编带着大家一起了解一下。 火车头采集ai伪原创插件截图&#xff1a; Author&#xff1a;Runsen 现在极少有人会用…

Python入门【串行、并行与并发的区别、 进程、线程、协程的区别、线程是什么? 、协程是什么?、同步和异步介绍、线程Thread 、守护线程】(二十三)

&#x1f44f;作者简介&#xff1a;大家好&#xff0c;我是爱敲代码的小王&#xff0c;CSDN博客博主,Python小白 &#x1f4d5;系列专栏&#xff1a;python入门到实战、Python爬虫开发、Python办公自动化、Python数据分析、Python前后端开发 &#x1f4e7;如果文章知识点有错误…

小红书运营 从入门到精通

大家好&#xff0c;我是网媒智星&#xff0c;今天跟大家分享一下小红书运营的经验&#xff0c;从入门到精通&#xff0c;一文读懂&#xff0c;全篇干货输出&#xff0c;非常实用。 一、注册账号 首先要说明一点&#xff0c;小红书与其他平台有所不同&#xff0c;因此具有特殊性…

mysql二进制方式升级8.0.34

一、概述 mysql8.0.33 存在如下高危漏洞&#xff0c;需要通过升级版本修复漏洞 Oracle MySQL Cluster 安全漏洞(CVE-2023-0361) mysql/8.0.33 Apache Skywalking <8.3 SQL注入漏洞 二、查看mysql版本及安装包信息 [rootlocalhost mysql]# mysql -V mysql Ver 8.0.33 fo…

做外贸受伤的并不总是你

外贸群里的小伙伴们经常吐槽&#xff1a; 小伙伴A 说&#xff1a;我前两天做一个PI&#xff0c;是新开发成功的一个客户。客户让我再次降价&#xff0c;我也同意了&#xff0c;刚刚客户反过来说&#xff0c;一再同意降价&#xff0c;是不是品质同时也变差了&#xff0c;应该怎…

ORACLE19.8 RAC搭建ADG-主备都在原主机上 静态监听

ORACLE19.8 RAC搭建ADG-主备都在原主机上配置关于PDB连接 标签&#xff1a; oracle19c 我们知道多租户环境下&#xff0c;pdb中建立的普通用户连接pdb需要通过tnsnames.ora或ezconnect的方式连接。而pdb的连接需要通过IP、端口和PDB服务名来连接&#xff0c;那么相同主机adg的…

轻辙视觉引擎以多种AI算法工具,助力纺织行业断线检测智能识别

近年来&#xff0c;人工智能技术在各行各业的应用愈发广泛&#xff0c;机器视觉作为人工智能的重要分支&#xff0c;成为当下的研究热点。机器视觉技术的发展&#xff0c;大幅提升了工业、农业、医疗等领域的效率和精度。尤其在工业领域&#xff0c;随着智能制造的进一步发展&a…

如何更改或伪装浏览器指纹?

跨境出海经常会出现被某些网站“禁止访问”的情况&#xff0c;为什么呢&#xff1f;其中一部分原因就是因为你的浏览器制备被网站和在线平台识别到&#xff0c;从而得出设备和网络详细信息&#xff0c;从而禁止你的访问。这种独特的配置文件称为“浏览器指纹”&#xff0c;使网…

艺术创作的新纪元:如何训练Lora模型打造令人惊叹的AI绘画

目录 前言一、&#x1f981; 选择合适的云端平台1-1、云端平台的优势1-2、选择适合的云端平台 二、&#x1f981; 账号注册三、&#x1f981; 开始炼丹3-1、购买算力并创建工作空间3-2、启动工作空间3-3、应用市场一键安装 四、&#x1f981; 使用Stable-Diffusion作图4-1、国风…

软考高项(八)项目整合管理 ★重点集萃★

&#x1f451; 个人主页 &#x1f451; &#xff1a;&#x1f61c;&#x1f61c;&#x1f61c;Fish_Vast&#x1f61c;&#x1f61c;&#x1f61c; &#x1f41d; 个人格言 &#x1f41d; &#xff1a;&#x1f9d0;&#x1f9d0;&#x1f9d0;说到做到&#xff0c;言出必行&am…