玉林建设工程信息网站,视频制作软件哪个好用,免费外链工具,国外室内设计专业大学排名主要内容#xff1a;升级成mybatis-plus#xff0c;代码生成也是mybatis-plus版本
跟着我一步一步来#xff0c;就可完成升级#xff01;
检查#xff1a;启动程序#xff0c;先保证若依能启动
第一步#xff1a;添加依赖 这里需要在两个地方添加#xff0c;一个是最…主要内容升级成mybatis-plus代码生成也是mybatis-plus版本
跟着我一步一步来就可完成升级
检查启动程序先保证若依能启动
第一步添加依赖 这里需要在两个地方添加一个是最外面的父工程的pom.xml一个是ruoyi-common的pom.xml。 最外面的父工程的pom.xml 1.添加版本信息 代码
!-- mybatis-plus 版本--mybatis-pluc.version3.4.2/mybatis-pluc.version 2.添加mybatis-plus依赖 代码
!-- mybatis-plus 增强CRUD --
dependencygroupIdcom.baomidou/groupIdartifactIdmybatis-plus-boot-starter/artifactIdversion3.4.2/version
/dependency ruoyi-common的pom.xml 1.直接继承父工程的依赖 第一步验证
admin的包中的application.yml文件有mybatis-plus的提示说明依赖弄好啦 第二步修改application.yml文件 1.删除旧的mybatis配置 2.写入新配置 代码
# MyBatis Plus配置
mybatis-plus:# 搜索指定包别名 根据自己的项目来typeAliasesPackage: com.rchuing.sis.**.domain # 配置mapper的扫描找到所有的mapper.xml映射文件mapperLocations: classpath*:mapper/**/*Mapper.xml# 加载全局的配置文件configLocation: classpath:mybatis/mybatis-config.xmlglobal-config:enable-sql-runner: truedb-config:id-type: auto
第三步重写mybatis配置文件 1.在framework中找到MybatisConfig文件然后删除。 2.在刚删除的文件夹下新建一个MybatisPlus的java文件 复制已下内容到java文件中
/*** Mybatis Plus 配置** author ruoyi*/
EnableTransactionManagement(proxyTargetClass true)
Configuration
public class MybatisPlusConfig
{Beanpublic MybatisPlusInterceptor mybatisPlusInterceptor(){MybatisPlusInterceptor interceptor new MybatisPlusInterceptor();// 分页插件interceptor.addInnerInterceptor(paginationInnerInterceptor());// 乐观锁插件interceptor.addInnerInterceptor(optimisticLockerInnerInterceptor());// 阻断插件interceptor.addInnerInterceptor(blockAttackInnerInterceptor());return interceptor;}/*** 分页插件自动识别数据库类型 https://baomidou.com/guide/interceptor-pagination.html*/public PaginationInnerInterceptor paginationInnerInterceptor(){PaginationInnerInterceptor paginationInnerInterceptor new PaginationInnerInterceptor();// 设置数据库类型为mysqlpaginationInnerInterceptor.setDbType(DbType.MYSQL);// 设置最大单页限制数量默认 500 条-1 不受限制paginationInnerInterceptor.setMaxLimit(-1L);return paginationInnerInterceptor;}/*** 乐观锁插件 https://baomidou.com/guide/interceptor-optimistic-locker.html*/public OptimisticLockerInnerInterceptor optimisticLockerInnerInterceptor(){return new OptimisticLockerInnerInterceptor();}/*** 如果是对全表的删除或更新操作就会终止该操作 https://baomidou.com/guide/interceptor-block-attack.html*/public BlockAttackInnerInterceptor blockAttackInnerInterceptor(){return new BlockAttackInnerInterceptor();}
} 如图 到这里Mybatis-plus就升级完成了。但代码生成里面还是以前mybatis的这里也需要升级一下方便代码生成。 第四步:把代码生成修改为mybatis-plus版本
1.在generator找到vm中的java文件夹 2.修改里面内容这里直接上代码了找到对应的直接复制粘贴就行。
2.1:domain.java.vm
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 org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.rchuing.sis.common.annotation.Excel;
#if($table.crud || $table.sub)
import com.rchuing.sis.common.core.domain.BaseEntity;
#elseif($table.tree)
import com.fenghuang.common.core.domain.TreeEntity;
#end/*** ${functionName}对象 ${tableName}** author ${author}* date ${datetime}*/
#if($table.crud || $table.sub)#set($EntityBaseEntity)
#elseif($table.tree)#set($EntityTreeEntity)
#end
TableName(resultMap ${packageName}.mapper.${ClassName}Mapper.${ClassName}Result)
public class ${ClassName} extends ${Entity}{
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)#elseExcel(name ${comment})#end#end#if($column.isPk 1)TableId(value $column.columnName,type IdType.AUTO)#endprivate $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)})#endpublic 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();}}2.2:mapper.java.vm
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});/*** 查询${functionName}列表** param ${className} ${functionName}* return ${functionName}集合*/public List${ClassName} select${ClassName}List(${ClassName} ${className});/*** 新增${functionName}** param ${className} ${functionName}* return 结果*/public int insert${ClassName}(${ClassName} ${className});/*** 修改${functionName}** param ${className} ${functionName}* return 结果*/public int update${ClassName}(${ClassName} ${className});/*** 删除${functionName}** param ${pkColumn.javaField} ${functionName}主键* return 结果*/public int delete${ClassName}By${pkColumn.capJavaField}(${pkColumn.javaType} ${pkColumn.javaField});/*** 批量删除${functionName}** param ${pkColumn.javaField}s 需要删除的数据主键集合* return 结果*/public int delete${ClassName}By${pkColumn.capJavaField}s(${pkColumn.javaType}[] ${pkColumn.javaField}s);
#if($table.sub)/*** 批量删除${subTable.functionName}** param ${pkColumn.javaField}s 需要删除的数据主键集合* return 结果*/public int delete${subClassName}By${subTableFkClassName}s(${pkColumn.javaType}[] ${pkColumn.javaField}s);/*** 批量新增${subTable.functionName}** param ${subclassName}List ${subTable.functionName}列表* return 结果*/public int batch${subClassName}(List${subClassName} ${subclassName}List);/*** 通过${functionName}主键删除${subTable.functionName}信息** param ${pkColumn.javaField} ${functionName}ID* return 结果*/public int delete${subClassName}By${subTableFkClassName}(${pkColumn.javaType} ${pkColumn.javaField});
#end
}2.3:service.java.vm
package ${packageName}.service;import java.util.List;
import ${packageName}.domain.${ClassName};
import com.baomidou.mybatisplus.extension.service.IService;/*** ${functionName}Service接口** author ${author}* date ${datetime}*/
public interface I${ClassName}Service extends IService${ClassName} {/*** 查询${functionName}** param ${pkColumn.javaField} ${functionName}主键* return ${functionName}*/public ${ClassName} select${ClassName}By${pkColumn.capJavaField}(${pkColumn.javaType} ${pkColumn.javaField});/*** 查询${functionName}列表** param ${className} ${functionName}* return ${functionName}集合*/public List${ClassName} select${ClassName}List(${ClassName} ${className});/*** 新增${functionName}** param ${className} ${functionName}* return 结果*/public int insert${ClassName}(${ClassName} ${className});/*** 修改${functionName}** param ${className} ${functionName}* return 结果*/public int update${ClassName}(${ClassName} ${className});/*** 批量删除${functionName}** param ${pkColumn.javaField}s 需要删除的${functionName}主键集合* return 结果*/public int delete${ClassName}By${pkColumn.capJavaField}s(${pkColumn.javaType}[] ${pkColumn.javaField}s);/*** 删除${functionName}信息** param ${pkColumn.javaField} ${functionName}主键* return 结果*/public int delete${ClassName}By${pkColumn.capJavaField}(${pkColumn.javaType} ${pkColumn.javaField});
}2.4:serviceimpl.java.vm
package ${packageName}.service.impl;import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import java.util.List;
#foreach ($column in $columns)
#if($column.javaField createTime || $column.javaField updateTime)
import com.rchuing.common.utils.DateUtils;
#break
#end
#end
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
#if($table.sub)
import java.util.ArrayList;
import com.rchuing.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 {Autowiredprivate ${ClassName}Mapper ${className}Mapper;/*** 查询${functionName}** param ${pkColumn.javaField} ${functionName}主键* return ${functionName}*/Overridepublic ${ClassName} select${ClassName}By${pkColumn.capJavaField}(${pkColumn.javaType} ${pkColumn.javaField}) {return ${className}Mapper.select${ClassName}By${pkColumn.capJavaField}(${pkColumn.javaField});}/*** 查询${functionName}列表** param ${className} ${functionName}* return ${functionName}*/Overridepublic List${ClassName} select${ClassName}List(${ClassName} ${className}) {return ${className}Mapper.select${ClassName}List(${className});}/*** 新增${functionName}** param ${className} ${functionName}* return 结果*/
#if($table.sub)Transactional
#endOverridepublic int insert${ClassName}(${ClassName} ${className}) {
#foreach ($column in $columns)
#if($column.javaField createTime)${className}.setCreateTime(DateUtils.getNowDate());
#end
#end
#if($table.sub)int rows ${className}Mapper.insert${ClassName}(${className});insert${subClassName}(${className});return rows;
#elsereturn ${className}Mapper.insert${ClassName}(${className});
#end}/*** 修改${functionName}** param ${className} ${functionName}* return 结果*/
#if($table.sub)Transactional
#endOverridepublic int update${ClassName}(${ClassName} ${className}) {
#foreach ($column in $columns)
#if($column.javaField updateTime)${className}.setUpdateTime(DateUtils.getNowDate());
#end
#end
#if($table.sub)${className}Mapper.delete${subClassName}By${subTableFkClassName}(${className}.get${pkColumn.capJavaField}());insert${subClassName}(${className});
#endreturn ${className}Mapper.update${ClassName}(${className});}/*** 批量删除${functionName}** param ${pkColumn.javaField}s 需要删除的${functionName}主键* return 结果*/
#if($table.sub)Transactional
#endOverridepublic int delete${ClassName}By${pkColumn.capJavaField}s(${pkColumn.javaType}[] ${pkColumn.javaField}s) {
#if($table.sub)${className}Mapper.delete${subClassName}By${subTableFkClassName}s(${pkColumn.javaField}s);
#endreturn ${className}Mapper.delete${ClassName}By${pkColumn.capJavaField}s(${pkColumn.javaField}s);}/*** 删除${functionName}信息** param ${pkColumn.javaField} ${functionName}主键* return 结果*/
#if($table.sub)Transactional
#endOverridepublic int delete${ClassName}By${pkColumn.capJavaField}(${pkColumn.javaType} ${pkColumn.javaField}) {
#if($table.sub)${className}Mapper.delete${subClassName}By${subTableFkClassName}(${pkColumn.javaField});
#endreturn ${className}Mapper.delete${ClassName}By${pkColumn.capJavaField}(${pkColumn.javaField});}
#if($table.sub)/*** 新增${subTable.functionName}信息** param ${className} ${functionName}对象*/public void insert${subClassName}(${ClassName} ${className}) {List${subClassName} ${subclassName}List ${className}.get${subClassName}List();${pkColumn.javaType} ${pkColumn.javaField} ${className}.get${pkColumn.capJavaField}();if (StringUtils.isNotNull(${subclassName}List)){List${subClassName} list new ArrayList${subClassName}();for (${subClassName} ${subclassName} : ${subclassName}List){${subclassName}.set${subTableFkClassName}(${pkColumn.javaField});list.add(${subclassName});}if (list.size() 0){${className}Mapper.batch${subClassName}(list);}}}
#end
}2.5:sub-domain.java.vm
package ${packageName}.domain;#foreach ($import in $subImportList)
import ${import};
#end
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.rchuing.common.annotation.Excel;
import com.rchuing.common.core.domain.BaseEntity;/*** ${subTable.functionName}对象 ${subTableName}** author ${author}* date ${datetime}*/
public class ${subClassName} extends BaseEntity {private static final long serialVersionUID 1L;#foreach ($column in $subTable.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)
#elseExcel(name ${comment})
#end
#endprivate $column.javaType $column.javaField;#end
#end
#foreach ($column in $subTable.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)})
#endpublic void set${AttrName}($column.javaType $column.javaField) {this.$column.javaField $column.javaField;}public $column.javaType get${AttrName}() {return $column.javaField;}
#end
#endOverridepublic String toString() {return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
#foreach ($column in $subTable.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.toString();}
}到这里就升级完成。
下面进行测试
1. 2. 3.如果看到mybatis的东西说明升级成功 注意
1.这里可能有些包的路径不对把爆红的包删除重新导入就可
2.因为实际项目路径不同这里可能需要手动修改 3.在BaseEntity类中 文章转载自: http://www.morning.bsqbg.cn.gov.cn.bsqbg.cn http://www.morning.pjrql.cn.gov.cn.pjrql.cn http://www.morning.kbntl.cn.gov.cn.kbntl.cn http://www.morning.kxwsn.cn.gov.cn.kxwsn.cn http://www.morning.yqrfn.cn.gov.cn.yqrfn.cn http://www.morning.jcxqc.cn.gov.cn.jcxqc.cn http://www.morning.qdlnw.cn.gov.cn.qdlnw.cn http://www.morning.bklkt.cn.gov.cn.bklkt.cn http://www.morning.ldsgm.cn.gov.cn.ldsgm.cn http://www.morning.ptqpd.cn.gov.cn.ptqpd.cn http://www.morning.zztmk.cn.gov.cn.zztmk.cn http://www.morning.mxbks.cn.gov.cn.mxbks.cn http://www.morning.qxnlc.cn.gov.cn.qxnlc.cn http://www.morning.fbzdn.cn.gov.cn.fbzdn.cn http://www.morning.xdjwh.cn.gov.cn.xdjwh.cn http://www.morning.kfbth.cn.gov.cn.kfbth.cn http://www.morning.syfty.cn.gov.cn.syfty.cn http://www.morning.rlwcs.cn.gov.cn.rlwcs.cn http://www.morning.dkzrs.cn.gov.cn.dkzrs.cn http://www.morning.xhwty.cn.gov.cn.xhwty.cn http://www.morning.csnmd.cn.gov.cn.csnmd.cn http://www.morning.jjxnp.cn.gov.cn.jjxnp.cn http://www.morning.wtcyz.cn.gov.cn.wtcyz.cn http://www.morning.srckl.cn.gov.cn.srckl.cn http://www.morning.pmdnx.cn.gov.cn.pmdnx.cn http://www.morning.mdpkf.cn.gov.cn.mdpkf.cn http://www.morning.cnfjs.cn.gov.cn.cnfjs.cn http://www.morning.yqlrq.cn.gov.cn.yqlrq.cn http://www.morning.4r5w91.cn.gov.cn.4r5w91.cn http://www.morning.yuanshenglan.com.gov.cn.yuanshenglan.com http://www.morning.pltbd.cn.gov.cn.pltbd.cn http://www.morning.qzsmz.cn.gov.cn.qzsmz.cn http://www.morning.tqdqc.cn.gov.cn.tqdqc.cn http://www.morning.gnlyq.cn.gov.cn.gnlyq.cn http://www.morning.rhkq.cn.gov.cn.rhkq.cn http://www.morning.xtqld.cn.gov.cn.xtqld.cn http://www.morning.rynq.cn.gov.cn.rynq.cn http://www.morning.pltbd.cn.gov.cn.pltbd.cn http://www.morning.qbmpb.cn.gov.cn.qbmpb.cn http://www.morning.glbnc.cn.gov.cn.glbnc.cn http://www.morning.ywgrr.cn.gov.cn.ywgrr.cn http://www.morning.hxwrs.cn.gov.cn.hxwrs.cn http://www.morning.fhtbk.cn.gov.cn.fhtbk.cn http://www.morning.vvbsxm.cn.gov.cn.vvbsxm.cn http://www.morning.bpyps.cn.gov.cn.bpyps.cn http://www.morning.qbmjf.cn.gov.cn.qbmjf.cn http://www.morning.yxwnn.cn.gov.cn.yxwnn.cn http://www.morning.wmgjq.cn.gov.cn.wmgjq.cn http://www.morning.mrfnj.cn.gov.cn.mrfnj.cn http://www.morning.ygmw.cn.gov.cn.ygmw.cn http://www.morning.gcbhh.cn.gov.cn.gcbhh.cn http://www.morning.shxmr.cn.gov.cn.shxmr.cn http://www.morning.ctwwq.cn.gov.cn.ctwwq.cn http://www.morning.zhishizf.cn.gov.cn.zhishizf.cn http://www.morning.qbdsx.cn.gov.cn.qbdsx.cn http://www.morning.cwgt.cn.gov.cn.cwgt.cn http://www.morning.lfmwt.cn.gov.cn.lfmwt.cn http://www.morning.ybhrb.cn.gov.cn.ybhrb.cn http://www.morning.taojava.cn.gov.cn.taojava.cn http://www.morning.clbzy.cn.gov.cn.clbzy.cn http://www.morning.mdjzydr.com.gov.cn.mdjzydr.com http://www.morning.muzishu.com.gov.cn.muzishu.com http://www.morning.ldcsw.cn.gov.cn.ldcsw.cn http://www.morning.czgfn.cn.gov.cn.czgfn.cn http://www.morning.pbpcj.cn.gov.cn.pbpcj.cn http://www.morning.hdwjb.cn.gov.cn.hdwjb.cn http://www.morning.hqgxz.cn.gov.cn.hqgxz.cn http://www.morning.ldsgm.cn.gov.cn.ldsgm.cn http://www.morning.kgnnc.cn.gov.cn.kgnnc.cn http://www.morning.trjr.cn.gov.cn.trjr.cn http://www.morning.rwzc.cn.gov.cn.rwzc.cn http://www.morning.pmmrb.cn.gov.cn.pmmrb.cn http://www.morning.qsmch.cn.gov.cn.qsmch.cn http://www.morning.hrtfz.cn.gov.cn.hrtfz.cn http://www.morning.nswcw.cn.gov.cn.nswcw.cn http://www.morning.ypwlb.cn.gov.cn.ypwlb.cn http://www.morning.ydxx123.cn.gov.cn.ydxx123.cn http://www.morning.rkzb.cn.gov.cn.rkzb.cn http://www.morning.tstwx.cn.gov.cn.tstwx.cn http://www.morning.bdtpd.cn.gov.cn.bdtpd.cn