最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

若依后端MyBatis改為MyBatis-Plus方式

 更新時間:2024年11月15日 11:45:42   作者:Liu.jie  
文章介紹了如何將MyBatis-Plus集成到RuoYi項目中,包括添加依賴、修改配置文件、重寫MyBatis配置和修改代碼生成器文件

1.引入MyBatis-Plus依賴

在總目錄的pom.xml,導入依賴

<mybatis-plus.version>3.4.3</mybatis-plus.version>

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

2.在ruoyi-common下的pom.xml添加mybatis-plus依賴

<!-- mybatis-plus 增強CRUD -->
<dependency>
    <groupId>com.baomidou</groupId>
    <artifactId>mybatis-plus-boot-starter</artifactId>
</dependency>

3.修改配置文件

ruoyi-admin下src\main\resources\application.yml,注釋mybatis的配置,新增plus的配置,這段配置我是從若依官方拷貝過來的,如果跟你實際不一樣就修改一下

# MyBatis配置
#mybatis:
#  # 搜索指定包別名
#  typeAliasesPackage: com.spiceIngredients.**.domain
#  # 配置mapper的掃描,找到所有的mapper.xml映射文件
#  mapperLocations: classpath*:mapper/**/*Mapper.xml
#  # 加載全局的配置文件
#  configLocation: classpath:mybatis/mybatis-config.xml
# MyBatis Plus配置
mybatis-plus:
  # 搜索指定包別名
  typeAliasesPackage: com.spiceIngredients.**.domain
  # 配置mapper的掃描,找到所有的mapper.xml映射文件
  mapperLocations: classpath*:mapper/**/*Mapper.xml
  # 加載全局的配置文件
  configLocation: classpath:mybatis/mybatis-config.xml
  # MyBatis-Plus分頁插件配置
  pagination:
    # 分頁合理化參數(shù),默認false
    reasonable: true
    # 支持通過 Mapper 接口參數(shù)來傳遞分頁參數(shù)
    supportMethodsArguments: true
    # 默認值為false,設置為true時,允許在參數(shù)中使用countSql
    params: count=countSql

4.重寫mybatis配置文件

在framework中,找到MybatisConfig文件,然后刪除,在剛刪除的文件夾下,新建一個MybatisPlus的java文件,復制已下內容到java文件中:

package com.spiceIngredients.framework.config;
import com.baomidou.mybatisplus.annotation.DbType;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.transaction.annotation.EnableTransactionManagement;
import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor;
import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor;
import com.baomidou.mybatisplus.extension.plugins.inner.OptimisticLockerInnerInterceptor;
import com.baomidou.mybatisplus.extension.plugins.inner.BlockAttackInnerInterceptor;

/**
 * Mybatis Plus 配置
 *
 * @author ruoyi
 */
@EnableTransactionManagement(proxyTargetClass = true)
@Configuration
public class MybatisPlusConfig
{
    @Bean
    public MybatisPlusInterceptor mybatisPlusInterceptor()
    {
        MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
        // 分頁插件
        interceptor.addInnerInterceptor(paginationInnerInterceptor());
        // 樂觀鎖插件
        interceptor.addInnerInterceptor(optimisticLockerInnerInterceptor());
        // 阻斷插件
        interceptor.addInnerInterceptor(blockAttackInnerInterceptor());
        return interceptor;
    }

    /**
     * 分頁插件,自動識別數(shù)據(jù)庫類型 https://baomidou.com/guide/interceptor-pagination.html
     */
    public PaginationInnerInterceptor paginationInnerInterceptor()
    {
        PaginationInnerInterceptor paginationInnerInterceptor = new PaginationInnerInterceptor();
        // 設置數(shù)據(jù)庫類型為mysql
        paginationInnerInterceptor.setDbType(DbType.MYSQL);
        // 設置最大單頁限制數(shù)量,默認 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();
    }
}

5.把代碼生成修改為mybatis-plus版本

ruoyi-generator下src\main\resources\vm\java 文件夾下面,直接文件內容替換:

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;
import java.io.Serializable;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
#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($Entity="BaseEntity")
#elseif($table.tree)
    #set($Entity="TreeEntity")
#end
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
@TableName("${tableName}")
public class ${ClassName} 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()")
            @TableField("`$column.columnName`")
            #elseif($column.javaType == 'Date')
            @JsonFormat(pattern = "yyyy-MM-dd")
            @Excel(name = "${comment}", width = 30, dateFormat = "yyyy-MM-dd")
            @TableField("`$column.columnName`")
            #else
            @Excel(name = "${comment}")
            @TableField("`$column.columnName`")
            #end
        #end
        #if($column.isPk == 1)
        @TableId(type = IdType.AUTO)
        #end

    private $column.javaType $column.javaField;

    #end
#end


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}> {

}

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}> {

}

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業(yè)務層處理
 *
 * @author ${author}
 * @date ${datetime}
 */
@Service
public class ${ClassName}ServiceImpl extends ServiceImpl<${ClassName}Mapper, ${ClassName}> implements I${ClassName}Service {

}

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")
            #else
            @Excel(name = "${comment}")
            #end
        #end
    private $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)})
        #end
    public void set${AttrName}($column.javaType $column.javaField) {
            this.$column.javaField = $column.javaField;
            }

    public $column.javaType get${AttrName}() {
            return $column.javaField;
            }
    #end
#end

@Override
public 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();
        }
        }

總結

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

最新評論

沅江市| 准格尔旗| 荣昌县| 山丹县| 台安县| 台中市| 肥东县| 楚雄市| 湖南省| 五华县| 阳山县| 石棉县| 高安市| 万盛区| 上虞市| 大埔县| 平凉市| 凌云县| 温泉县| 大名县| 黄冈市| 岑溪市| 托克逊县| 葫芦岛市| 福建省| 长沙市| 特克斯县| 六盘水市| 上虞市| 镇远县| 龙口市| 武乡县| 田阳县| 平陆县| 师宗县| 绥滨县| 山阳县| 章丘市| 千阳县| 喀什市| 铜陵市|