若依mybatis升级mybatis-plus,其他也适用

5 篇文章 0 订阅
5 篇文章 0 订阅

若依mybatis升级mybatis-plus,其他也适用

本文档记录若依mybatis升级plus,其他也类似

第一步 修改ruoyi-common的pom.xml

添加如下依赖

前两个mybatis-plus的,第三个lombok 实体中用@Data 代替get/set,get/set太low了

<!-- mybatis-plus-->
<dependency>
    <groupId>com.baomidou</groupId>
    <artifactId>mybatis-plus-annotation</artifactId>
    <version>3.5.1</version>
</dependency>
<!--mybatis plus extension,包含了mybatis plus core-->
<dependency>
    <groupId>com.baomidou</groupId>
    <artifactId>mybatis-plus-extension</artifactId>
    <version>3.5.1</version>
</dependency>
<!-- lombok  -->
<dependency>
    <groupId>org.projectlombok</groupId>
    <artifactId>lombok</artifactId>
</dependency>

第二步 修改ruoyi-admin的application.yml

1. 注释mybatis配置

# MyBatis配置
#mybatis:
#    # 搜索指定包别名
#    typeAliasesPackage: com.ruoyi.**.domain
#    # 配置mapper的扫描,找到所有的mapper.xml映射文件
#    mapperLocations: classpath*:mapper/**/*Mapper.xml
#    # 加载全局的配置文件
#    configLocation: classpath:mybatis/mybatis-config.xml

2. 添加mybatis-plus配置

前三个就是把上面的mybatis配置复制了一下,因为ruoyi-framework的MyBatisConfig.java中用到了前三个,其实可以改名,但是比较懒就复制了一下,下面第三步说

mybatis-plus:
  # 搜索指定包别名
  typeAliasesPackage: com.ruoyi.**.domain
  # 配置mapper的扫描,找到所有的mapper.xml映射文件
  mapperLocations: classpath*:mapper/**/*Mapper.xml
  # 加载全局的配置文件
  configLocation: classpath:mybatis/mybatis-config.xml
  
  
  type-aliases-package: com.ruoyi.**.domain
  mapper-locations: classpath*:mapper/**/*Mapper.xml
  configuration:
    cache-enabled: true
    use-generated-keys: true
    default-executor-type: simple
    log-impl: org.apache.ibatis.logging.slf4j.Slf4jImpl

附上看到的一个完整的配置解释做个记录,不用加到配置里

#mybatis-plus:
#  # 对应的 XML 文件位置
#  mapperLocations: classpath*:mapper/**/*Mapper.xml
#  # 实体扫描,多个package用逗号或者分号分隔
#  typeAliasesPackage: com.ruoyi.**.domain
#  # 针对 typeAliasesPackage,如果配置了该属性,则仅仅会扫描路径下以该类作为父类的域对象
#  #typeAliasesSuperType: Class<?>
#  # 如果配置了该属性,SqlSessionFactoryBean 会把该包下面的类注册为对应的 TypeHandler
#  #typeHandlersPackage: null
#  # 如果配置了该属性,会将路径下的枚举类进行注入,让实体类字段能够简单快捷的使用枚举属性
#  #typeEnumsPackage: null
#  # 启动时是否检查 MyBatis XML 文件的存在,默认不检查
#  checkConfigLocation: false
#  # 通过该属性可指定 MyBatis 的执行器,MyBatis 的执行器总共有三种:
#  # SIMPLE:该执行器类型不做特殊的事情,为每个语句的执行创建一个新的预处理语句(PreparedStatement)
#  # REUSE:该执行器类型会复用预处理语句(PreparedStatement)
#  # BATCH:该执行器类型会批量执行所有的更新语句
#  executorType: SIMPLE
#  # 指定外部化 MyBatis Properties 配置,通过该配置可以抽离配置,实现不同环境的配置部署
#  configurationProperties: null
#  configuration:
#    # 自动驼峰命名规则(camel case)映射
#    # 如果您的数据库命名符合规则无需使用 @TableField 注解指定数据库字段名
#    mapUnderscoreToCamelCase: true
#    # 默认枚举处理类,如果配置了该属性,枚举将统一使用指定处理器进行处理
#    # org.apache.ibatis.type.EnumTypeHandler : 存储枚举的名称
#    # org.apache.ibatis.type.EnumOrdinalTypeHandler : 存储枚举的索引
#    # com.baomidou.mybatisplus.extension.handlers.MybatisEnumTypeHandler : 枚举类需要实现IEnum接口或字段标记@EnumValue注解.
#    defaultEnumTypeHandler: org.apache.ibatis.type.EnumTypeHandler
#    # 当设置为 true 的时候,懒加载的对象可能被任何懒属性全部加载,否则,每个属性都按需加载。需要和 lazyLoadingEnabled 一起使用。
#    aggressiveLazyLoading: true
#    # MyBatis 自动映射策略
#    # NONE:不启用自动映射
#    # PARTIAL:只对非嵌套的 resultMap 进行自动映射
#    # FULL:对所有的 resultMap 都进行自动映射
#    autoMappingBehavior: PARTIAL
#    # MyBatis 自动映射时未知列或未知属性处理策
#    # NONE:不做任何处理 (默认值)
#    # WARNING:以日志的形式打印相关警告信息
#    # FAILING:当作映射失败处理,并抛出异常和详细信息
#    autoMappingUnknownColumnBehavior: NONE
#    # Mybatis一级缓存,默认为 SESSION
#    # SESSION session级别缓存,同一个session相同查询语句不会再次查询数据库
#    # STATEMENT 关闭一级缓存
#    localCacheScope: SESSION
#    # 开启Mybatis二级缓存,默认为 true
#    cacheEnabled: true
#  global-config:
#    # 是否打印 Logo banner
#    banner: true
#    # 是否初始化 SqlRunner
#    enableSqlRunner: false
#    dbConfig:
#      # 主键类型
#      # AUTO 数据库ID自增
#      # NONE 空
#      # INPUT 用户输入ID
#      # ASSIGN_ID 全局唯一ID
#      # ASSIGN_UUID 全局唯一ID UUID
#      idType: AUTO
#      # 表名前缀
#      tablePrefix: null
#      # 字段 format,例: %s,(对主键无效)
#      columnFormat: null
#      # 表名是否使用驼峰转下划线命名,只对表名生效
#      tableUnderline: true
#      # 大写命名,对表名和字段名均生效
#      capitalMode: false
#      # 全局的entity的逻辑删除字段属性名
#      logicDeleteField: null
#      # 逻辑已删除值
#      logicDeleteValue: 2
#      # 逻辑未删除值
#      logicNotDeleteValue: 0
#      # 字段验证策略之 insert,在 insert 的时候的字段验证策略
#      # IGNORED 忽略判断
#      # NOT_NULL 非NULL判断
#      # NOT_EMPTY 非空判断(只对字符串类型字段,其他类型字段依然为非NULL判断)
#      # DEFAULT 默认的,一般只用于注解里
#      # NEVER 不加入 SQL
#      insertStrategy: NOT_NULL
#      # 字段验证策略之 update,在 update 的时候的字段验证策略
#      updateStrategy: NOT_NULL
#      # 字段验证策略之 select,在 select 的时候的字段验证策略既 wrapper 根据内部 entity 生成的 where 条件
#      selectStrategy: NOT_NULL

第三步 修改ruoyi-framework的MyBatisConfig.java

  1. 配置指向修改下

  2. 重点:SalSessionFactory不要使用原生的,请使用MybatisSglSessionFactory

    这个一定要改要不会报错
    在这里插入图片描述
    到这里mybatis-plus就配置的差不多了,下面就举个使用例子

开始测试

可以直接第五步开始,也可以一步一步看

1. 修改ruoyi-system 的 ISysConfigService,加个继承

public interface ISysConfigService extends IService<SysConfig>

2. 修改ruoyi-system 的 SysConfigServiceImpl,加个继承

public class SysConfigServiceImpl extends ServiceImpl<SysConfigMapper, SysConfig> implements ISysConfigService

3. 修改ruoyi-system 的 SysConfigMapper,加个继承

public interface SysConfigMapper extends BaseMapper<SysConfig>

4. 修改ruoyi-system 的 SysConfig,加个 @TableId(type = IdType.AUTO)

@TableId(type = IdType.AUTO)
private Long configId;

5. 要么把SysConfig的 extends BaseEntity 去掉 要么给BaseEntity加东西 @TableField(exist = false)

该说不说,ruoyi结构太丑了,但是开源这点最优秀

都加上注解

/** 搜索值 */
    @JsonIgnore
    @TableField(exist = false)
    private String searchValue;

    /** 创建者 */
    @TableField(exist = false)
    private String createBy;

    /** 创建时间 */
    @TableField(exist = false)
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date createTime;

    /** 更新者 */
    @TableField(exist = false)
    private String updateBy;

    /** 更新时间 */
    @TableField(exist = false)
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date updateTime;

    /** 备注 */
    @TableField(exist = false)
    private String remark;

    /** 请求参数 */
    @JsonInclude(JsonInclude.Include.NON_EMPTY)
    @TableField(exist = false)
    private Map<String, Object> params;

6. 修改ruoyi-admin的SysConfigController

创建一个调用baseMapper的数据进行测试

/**
 * 获取参数配置列表
 */
@PreAuthorize("@ss.hasPermi('system:config:list')")
@GetMapping("/listss")
public TableDataInfo lissst(SysConfig config)
{
    startPage();
    List<SysConfig> list = configService.list();
    return getDataTable(list);
}

启动项目进行测试

在这里插入图片描述

  • 6
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
将SSM框架中的MyBatis升级MyBatis-Plus是可行的,可以实现共存。SSM框架由Spring、Spring MVC和MyBatis组成,而MyBatis-Plus是对MyBatis的增强扩展。下面将介绍如何将它们共存。 首先,需要将MyBatis升级MyBatis-Plus。可以将MyBatis-Plus的依赖项添加到项目的pom.xml文件中,替换原有的MyBatis依赖。然后,需要对原有的MyBatis配置文件进行修改。MyBatis-Plus提供了一些方便的功能和特性,如自动填充、逻辑删除等,可以根据项目需求选择开启或关闭。 在SSM框架中,MyBatis-Plus可以与原有的Spring框架和Spring MVC框架完美共存。Spring框架负责管理和配置各种Bean,MyBatis-Plus可以与Spring框架一起使用,将其作为DAO层的组件进行管理。在Spring的配置文件中,可以将MyBatis-Plus的配置文件加入到配置中。 在Spring MVC框架中,可以继续使用原有的控制器、服务和视图解析器等组件。MyBatis-Plus可以与Spring MVC框架无缝集成,通过Spring MVC接收请求,然后调用MyBatis-Plus进行数据访问和处理。 在具体开发过程中,可以利用MyBatis-Plus提供的一些特性简化开发工作。例如,可以使用MyBatis-Plus的代码生成器来自动生成DAO、实体类和Mapper等代码,减少手动编写的工作量。 总结来说,将SSM框架中的MyBatis升级MyBatis-Plus是完全可以实现的,它们可以共存并完美集成。通过使用MyBatis-Plus,我们可以更加便捷地开发和管理数据库操作,提高开发效率和代码质量。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

yizhi-w

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值