通用 Mapper 核心实现 Provider 2.1.0 版本发布

Posted isea533

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了通用 Mapper 核心实现 Provider 2.1.0 版本发布相关的知识,希望对你有一定的参考价值。

项目地址

核心实现中定义了

  • 对象和表之间映射关系数据的结构和获取方式,通过 SPI 支持部分自定义扩展。

  • Provider 中的实现中需要返回 namespace.methodName 类型的字符串(而不是SQL),通过中间缓存在 Caching 中获取真正的 SQL 信息。

当前项目没有直接提供可用的通用方法,方法在 mybatis-mapper/mapper( gitee | GitHub )中提供。

2.1.0 更新日志

2.0.0 和 2.1.0 区别是 mybatis-config 从 1.0.0 升级为了 1.1.0。

大版本更新,默认不需要给所有字段添加注解,可以通过 @Entity.Table(style="normal") 指定字段转换样式,默认空时使用 lower_underscore

默认可选值如下

  • normal: 不做转换(不是默认值,需要设置)
  • lower: 转小写
  • upper: 转大写
  • lower_underscore: 驼峰转小写下划线**(默认值)**
  • upper_underscore: 驼峰转大写下划线

想要覆盖默认值时,通过属性 mybatis.provider.style 进行修改。

支持以下方式修改

  1. 在类路径下面创建 mybatis-provider.properties 配置文件,通过 mybatis.provider.style=xxx 指定值。

  2. 除了上面默认位置的配置外,还可以通过环境变量或者系统变量 io.mybatis.provider.properties 指定上面的配置名,可以带路径,方便通过外部配置覆盖。
    系统变量如: java -jar -Dio.mybatis.provider.properties=custom.properties 可执行.jar

    环境变量如: IO_MYBATIS_PROVIDER_PROPERTIES=custom.properties java -jar 可执行.jar

  3. 支持通过环境变量或者系统变量配置,例如 -Dmybatis.provider.style=xxx

  4. 支持Spring方式配置该值,Spring Boot 时可以在配置文件指定,支持 yaml 格式。

上述配置方式的优先级如下

Spring(包含了Spring的外部化配置规则和优先级) > 系统变量 > 环境变量 > 配置文件

除了上面默认几种样式外,还可以通过 SPI 方式扩展 io.mybatis.provider.Style 接口,接口方法 String getStyle() 返回值为这里要配置的值。

增加 @Entity.Transient 注解

默认字段上不需要加 @Entity.Column 注解后,所有字段都会当成表字段进行处理(没有排除基本类型、枚举、List 等),想要排除某些字段时,必须在字段上添加该注解。

以上是关于通用 Mapper 核心实现 Provider 2.1.0 版本发布的主要内容,如果未能解决你的问题,请参考以下文章

通用 Mapper 核心实现 Provider 2.1.0 版本发布

Cause: java. lang.InstantiationException: tk.mybatis.mapper.provider.base.BaseInsertProvider

java.lang.NoSuchMethodException: tk.mybatis.mapper.provider.base.BaseSelectProvider

通用mapper和分类实现

通用Mapper

mybatis通用mapper动态查询表名