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 //修改
{