开发者

将Mybatis升级为Mybatis-Plus的详细过程

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

    说明

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

    我所使用的若依版本为:v3.8.8

    流程

    增加依赖

    【首先修改父模块的pom.XML文件】

    将Mybatis升级为Mybatis-Plus的详细过程

    分别在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文件】

    将Mybatis升级为Mybatis-Plus的详细过程

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

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

    修改配置文件

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

    将Mybatis升级为Mybatis-Plus的详细过程

    将Mybatis升级为Mybatis-Plus的详细过程

    注释掉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的

    将Mybatis升级为Mybatis-Plus的详细过程

    修改之后记得重新 install framework包,这样修改才会生效

    将Mybatis升级为Mybatis-Plus的详细过程

    代码生成

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

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

    使用IDEA生成代码

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

    将Mybatis升级为Mybatis-Plus的详细过程

    将Mybatis升级为Mybatis-Plus的详细过程

    将Mybatis升级为Mybatis-Plus的详细过程

    将Mybatis升级为Mybatis-Plus的详细过程

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

    将Mybatis升级为Mybatis-Plus的详细过程

    注意

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

    Controller文件

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

    编程

    将Mybatis升级为Mybatis-Plus的详细过程

    虽然若依生成器生成了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.DeleteMajspping;
    import org.springframework.web.bind.annotation.PathVariable;
    import org.springSsQHfpRXpframework.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));
        }
    }
    
    

    以上就是将Mybatis升级为Mybatis-Plus的详细过程的详细内容,更多关于Mybatis升级为Mybatis-Plus的资料请关注编程客栈(www.devze.com)其它相关文章!

    0

    上一篇:

    下一篇:

    精彩评论

    暂无评论...
    验证码 换一张
    取 消

    最新开发

    开发排行榜