# 2022年7月31日 - 2.0.0 发布

# mybatis-mapper 发布 2.0.0

  • mybatis-provider 升级为 2.1.1,同时引入了 mybatis-config 依赖,增加 mybatis-mapper.proerteis 用户自定义配置
  • ExampleWrapper condition 系列方法新增 Supplier 重载 #47 (opens new window) by darren
  • 更新代码生成器,解决NAME=>nAME错误,现在可以转换为 name
  • example / wrapper 新增字符串形式的排序方法重载 #34 (opens new window) by darren
  • 修复 jpa 模块 获取 Entity 类型错误的问题(排除了基本类型) #41 (opens new window) by darren
  • 完善和Spring的集成,完善Bean的初始化和加载,fixed #51 (opens new window)
  • 针对 mybatis-provider 中 @Entity.Prop 注解的兼容性改动
  • 添加 bom 子模块,管理 mybatis-mapper 中所有子模块的依赖 #45 (opens new window)(** by zhousiwei**),可以使用下面的方式管理依赖:
    <dependencyManagement>
       <dependencies>
           <dependency>
               <groupId>io.mybatis</groupId>
               <artifactId>mapper-bom</artifactId>
               <version>2.0.0</version>
               <type>pom</type>
               <scope>import</scope>
           </dependency>
       </dependencies>
    </dependencyManagement>
    

# mybatis-mapper.proerteis 用户自定义配置

关于配置的详细设计和实现,参考: https://blog.csdn.net/isea533/category_11904924.html

目前可配置的参数如下:

  • mybatis.provider.style,默认值为 lower_underscore,可选值如下:
    • normal 不做转换
    • lower_underscore 驼峰转下划线
    • upper_underscore 驼峰转大写下划线
    • lower 转小写
    • upper 转大写 支持扩展,详情看 mybatis-provider 项目

支持下面 3 个参数:

@Entity.Table(value = "user",
    props = {
        @Entity.Prop(name = "deleteByExample.allowEmpty", value = "false"),
        @Entity.Prop(name = "updateByExample.allowEmpty", value = "false"),
        @Entity.Prop(name = "updateByExampleSelective.allowEmpty", value = "false")
    }
)

上面代码可以针对单个实体进行配置,也可以在配置文件中配置全局的默认配置。

除了直接在用户自定义配置文件中配置外,也支持系统变量和环境变量,使用 Spring Boot 时,也支持 Spring Boot 的所有外部化配置方式,支持在 application.[yaml|properties] 中配置,例如 yaml 方式:

mybatis:
  provider:
    style: lower_underscore
deleteByExample:
  allowEmpty: false
updateByExample:
  allowEmpty: false
updateByExampleSelective:
  allowEmpty: false
# 还可以使用 spring boot 推荐的形式
update-by-example-selective:
  allow-empty: false

# mybatis-provider 发布 2.1.1 版本

  • EntityProps@Entity.Prop 不兼容性改动,简化了类型操作。
  • 去掉了 NameConvert 接口和 Utils 中的相关方法(Style可以实现类似功能)
  • EntityPropsgetProp 方法支持 ConfigHelper 全局配置

# mybatis-provider 发布 2.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() 返回值为这里要配置的值。

# mybatis-config 发布 1.1.0

CSDN 专栏:Java通用配置设计实现 (opens new window)

  1. 设计 (opens new window)
  2. JVM和环境变量实现 (opens new window)
  3. 用户配置实现 (opens new window)
  4. 版本配置实现 (opens new window)
  5. 集成 Spring (opens new window)
  6. 扩展示例 (opens new window)