若依 3.8.7版本springboot前后端分离 整合mabatis plus | 代码生成器修改为plus 版本

1.去掉mybatis

  • 这一步我没有操作,看别人的博客有说不去掉可能冲突,也可能不冲突,我试下来就没去掉
  • 如需要去除,到总的pom.xml中properties标签下的<mybatis-spring-boot.version>x.x.x</mybatis-spring-boot.version>注释掉
  • 将ruoyi-framework包的config包下的MybatisConfig去中的代码都注释掉(别删)

2.直接在ruoyi-common模块导入依赖

  • 版本可以使用自己用过的
<dependency>
    <groupId>com.baomidou</groupId>
    <artifactId>mybatis-plus-extension</artifactId>
    <version>3.5.2</version>
    <scope>compile</scope>
</dependency>
​
<dependency>
    <groupId>com.baomidou</groupId>
    <artifactId>mybatis-plus-boot-starter</artifactId>
    <version>3.5.2</version>
</dependency>

  • 导入之后记得重新构建maven依赖

3.修改mybatis配置文件为mtbatis plus配置文件

  • 修改ruoyi-admin下的application.yml配置文件
    在这里插入图片描述

4.自建模块命名

  • 自定义项目遵守若依项目规则:com.ruoyi.xxx
    在这里插入图片描述

5.编写配置类

@MapperScan("com.ruoyi.schooltimetable(自己的包名).mapper")
@EnableTransactionManagement
@Configuration
public class MybatisPlusConfig {
}
  • 接着启动项目,发现之前功能能用

6.lombok注解添加

  • 由于使用了idea的mybatis plus代码生成器插件生成了@Data注解,所以需要添加

1)先在总pom文件操作(包括上面导入mybatisplus依赖的规范化)

        <mybatis-plus.version>3.5.2</mybatis-plus.version>
        <lombok.version>1.18.16</lombok.version>

            <!--mybatis-plus-->
            <dependency>
                <groupId>com.baomidou</groupId>
                <artifactId>mybatis-plus-extension</artifactId>
                <version>${mybatis-plus.version}</version>
                <scope>compile</scope>
            </dependency>

            <dependency>
                <groupId>com.baomidou</groupId>
                <artifactId>mybatis-plus-boot-starter</artifactId>
                <version>${mybatis-plus.version}</version>
            </dependency>

            <dependency>
                <groupId>org.projectlombok</groupId>
                <artifactId>lombok</artifactId>
                <version>${lombok.version}</version>
            </dependency>

2)在ruoyi-common中添加依赖

  • 由于版本号在总pom文件中已有,就不需要添加
        <!--mybatis-plus-->
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-extension</artifactId>
            <scope>compile</scope>
        </dependency>

        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-boot-starter</artifactId>
        </dependency>
        <!--lombok-->
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
        </dependency>

3)使用,在你要使用的位置调用ruoyi-common模块

  • 比如我新建的是ruoyi-bases模块
    在这里插入图片描述
  • 如果需要其他的模块就在需要的模块上添加依赖
    <dependencies>

        <!-- 通用工具-->
        <dependency>
            <groupId>com.ruoyi</groupId>
            <artifactId>ruoyi-common</artifactId>
        </dependency>
        <!--系统模块-->
        <dependency>
            <groupId>com.ruoyi</groupId>
            <artifactId>ruoyi-system</artifactId>
        </dependency>

    </dependencies>

4)再次查看mybatisplus生成的代码可以得到依赖已经注入

在这里插入图片描述

6.代码生成器改变为生成mybaits plus

2025年4月29日新增

  • 来到ruoyi-generator模块
    在这里插入图片描述
  • 可以修改一些基本生成参数
    在这里插入图片描述
  • 因为我们是要修改生成mybaits代码改为生成Mybatis plus代码
  • 所以我们主要修改
    在这里插入图片描述
  • 其他部分根据自己需要修改

7.修改domain实体类生成

package ${packageName}.domain;

#foreach ($import in $importList)
import ${import};
#end
import com.baomidou.mybatisplus.annotation.IdType; //添加
import com.baomidou.mybatisplus.annotation.TableId; //添加
import com.baomidou.mybatisplus.annotation.TableName; //添加
import lombok.Data; //添加
import java.io.Serializable; //添加

import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
#if($table.crud || $table.sub)
import com.ruoyi.common.core.domain.BaseEntity;
#elseif($table.tree)
import com.ruoyi.common.core.domain.TreeEntity;
#end

/**
* ${functionName}对象 ${tableName}
*
* @author ${author}
* @date ${datetime}
*/
@Data //添加
@TableName("${tableName}") //添加
#if($table.crud || $table.sub)
#set($Entity="BaseEntity")
#elseif($table.tree)
#set($Entity="TreeEntity")
#end
public class ${ClassName} extends ${Entity} implements Serializable //修改
{
private static final long serialVersionUID=1L;

#foreach ($column in $columns)
#if(!$table.isSuperColumn($column.javaField))
/** $column.columnComment */
#if($column.list)
#set($parentheseIndex=$column.columnComment.indexOf("("))
#if($parentheseIndex != -1)
#set($comment=$column.columnComment.substring(0, $parentheseIndex))
#else
#set($comment=$column.columnComment)
#end
#if($parentheseIndex != -1)
@Excel(name = "${comment}" , readConverterExp = "$column.readConverterExp()")
#elseif($column.javaType == 'Date')
@JsonFormat(pattern = "yyyy-MM-dd")
@Excel(name = "${comment}" , width = 30, dateFormat = "yyyy-MM-dd")
#else
@Excel(name = "${comment}")
#end
#end
#if($column.isPk == 1) //添加
@TableId(value = "id", type = IdType.AUTO)
#end
private $column.javaType $column.javaField;

#end
#end
#if($table.sub)
/** $table.subTable.functionName信息 */
private List<${subClassName}> ${subclassName}List;

#end
###foreach ($column in $columns)
###if(!$table.isSuperColumn($column.javaField))
###if($column.javaField.length() > 2 && $column.javaField.substring(1,2).matches("[A-Z]"))
###set($AttrName=$column.javaField)
###else
###set($AttrName=$column.javaField.substring(0,1).toUpperCase() + ${column.javaField.substring(1)})
###end
##    public void set${AttrName}($column.javaType $column.javaField)
##    {
##        this.$column.javaField = $column.javaField;
##    }
##
##    public $column.javaType get${AttrName}()
##    {
##        return $column.javaField;
##    }
###end
###end
##
###if($table.sub)
##    public List<${subClassName}> get${subClassName}List()
##    {
##        return ${subclassName}List;
##    }
##
##    public void set${subClassName}List(List<${subClassName}> ${subclassName}List)
##    {
##        this.${subclassName}List = ${subclassName}List;
##    }
##
###end
##    @Override
##    public String toString() {
##        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
###foreach ($column in $columns)
###if($column.javaField.length() > 2 && $column.javaField.substring(1,2).matches("[A-Z]"))
###set($AttrName=$column.javaField)
###else
###set($AttrName=$column.javaField.substring(0,1).toUpperCase() + ${column.javaField.substring(1)})
###end
##            .append("${column.javaField}", get${AttrName}())
###end
###if($table.sub)
##            .append("${subclassName}List", get${subClassName}List())
###end
##            .toString();
##    }
}

  • 主要修改如下
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

8.修改mapper

  • 注:生成代码并不完全,别直接复制
package ${packageName}.mapper;

import java.util.List;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; //添加
import ${packageName}.domain.${ClassName};
#if($table.sub)
import ${packageName}.domain.${subClassName};
#end

/**
 * ${functionName}Mapper接口
 *
 * @author ${author}
 * @date ${datetime}
 */
public interface ${ClassName}Mapper extends BaseMapper<${ClassName}> //修改
{
    /**
     * 查询${functionName}
     *
     * @param ${pkColumn.javaField} ${functionName}主键
     * @return ${functionName}
     */
    public ${ClassName} select${ClassName}By${pkColumn.capJavaField}(${pkColumn.javaType} ${pkColumn.javaField});

在这里插入图片描述

9.service层代码修改

在这里插入图片描述

10.serviceImpl修改

  • 注:生成代码并不完全,别直接复制
package ${packageName}.service.impl;

import java.util.List;
    #foreach ($column in $columns)
        #if($column.javaField == 'createTime' || $column.javaField == 'updateTime')
        import com.ruoyi.common.utils.DateUtils;
            #break
        #end
    #end
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; //添加
    #if($table.sub)
    import java.util.ArrayList;
    import com.ruoyi.common.utils.StringUtils;
    import org.springframework.transaction.annotation.Transactional;
    import ${packageName}.domain.${subClassName};
    #end
import ${packageName}.mapper.${ClassName}Mapper;
import ${packageName}.domain.${ClassName};
import ${packageName}.service.I${ClassName}Service;

/**
 * ${functionName}Service业务层处理
 *
 * @author ${author}
 * @date ${datetime}
 */
@Service
public class ${ClassName}ServiceImpl extends ServiceImpl<${ClassName}Mapper, ${ClassName}> implements I${ClassName}Service //修改
{

在这里插入图片描述

至此修改完毕,可直接调用plus封装的方法

  • 10
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值