项目作者: tangxbai

项目描述 :
Mybatis-mapper spring boot support
高级语言: Java
项目地址: git://github.com/tangxbai/mybatis-mapper-spring-boot.git
创建时间: 2019-11-04T09:37:30Z
项目社区:https://github.com/tangxbai/mybatis-mapper-spring-boot

开源协议:Apache License 2.0

下载


mybatis

Mybatis-mapper-spring-boot

version maven central license

Mybatis-mapper关于springboot的整合组件,使用它将给你带来沉浸式的开发体验,极简化的配置,丰富的Api。

关联文档

关于纯java环境,请移步到:https://github.com/tangxbai/mybatis-mapper

关于整合spring,请移步到:https://github.com/tangxbai/mybatis-mapper-spring

项目演示

快速开始

导入springboot-starter启动组件,配合配置参数即可正常使用插件Api。

  1. <dependency>
  2. <groupId>com.viiyue.plugins</groupId>
  3. <artifactId>mybatis-mapper-spring-boot-starter</artifactId>
  4. <version>[VERSION]</version>
  5. </dependency>

如何获取最新版本?点击这里获取最新版本

基础配置

  1. # 启用/禁用mybatis-mapper插件,默认开启
  2. # 注意:如果此项设置为false,那么以下所有配置将不会生效
  3. mybatis-mapper.setting.enable = true
  4. # 启用/禁用日志打印,默认开启
  5. # 注意:如果此项设置为false,那么以下两项配置将不会生效
  6. mybatis-mapper.setting.enable-logger = true
  7. # 启用/禁用打印运行SQL编译日志,默认开启
  8. mybatis-mapper.setting.enable-runtime-log = true
  9. # 启用/禁用Mapper扫描日志,默认开启
  10. mybatis-mapper.setting.enable-mapper-scan-log = true
  11. # 启用/禁用打印编译日志,默认开启
  12. mybatis-mapper.setting.enable-compilation-log = true
  13. # 启用/禁用XML模板语法解析,默认禁用
  14. # 注意:如果此项设置为false,将无法使用XML模板语法
  15. mybatis-mapper.setting.enable-xml-syntax-parsing = false
  16. # 启用/禁用关键字转大写,默认小写
  17. mybatis-mapper.setting.enable-keywords-to-uppercase = false
  18. # 设置数据库列样式,默认"#"
  19. mybatis-mapper.setting.database-column-style = #

以上各配置项的样例值均为默认值,如果想要更改默认值的话,请帖上您的条例配置,如果您想继续使用这些默认值的话,可以省略这些配置直接使用。

这里贴的是properties的配置方式,各位可以自行转换成 yml 的配置形式。

配置数据库Bean

  1. @Table( prefix = "t_" ) // 表名生成规则,可以配置更多详细说明
  2. @NamingRule( NameStyle.UNDERLINE ) // 字段和数据库列之间的转换规则
  3. @ValueRule( ValueStyle.SHORT ) // 值的生成规则,类似于:#{id, javaType=Long, jdbcType=BIGINT}
  4. @ExpressionRule( ExpressionStyle.SHORT ) // 表达式生成规则,类似于: id = #{id, javaType=Long, jdbcType=BIGINT}
  5. @DefaultOrderBy( "#pk" ) // #pk主键占位符,指向当前生效的主键字段,也可以直接写 "id"。
  6. public class YourModelBean {
  7. @Id // 主键可以配置多个,但是只会有一个生效,Api方法中如果想要使用其他主键请指明所在下标位置
  8. @Index( Integer.MIN_VALUE )
  9. @GeneratedKey( useGeneratedKeys = true ) // JDBC支持的自增主键获取方式
  10. // @GeneratedKey( valueProvider = SnowFlakeIdValueProvider.class ) // 雪花Id,插件提供的两种主键生成策略之一
  11. // @GeneratedKey( statement = "MYSQL" ) // 枚举引用
  12. // @GeneratedKey( statement = "SELECT LAST_INSERT_ID()" ) // 自增主键SQL查询语句
  13. // @GeneratedKey( statementProvider = YourCustomStatementProvider.class ) // 通过Provider提供SQL语句
  14. private Long id;
  15. @Index( Integer.MAX_VALUE - 4 )
  16. @Column( jdcbType = Type.CHAR ) // 对字段进行详细描述
  17. @LogicallyDelete( selectValue = "Y", deletedValue = "N" ) // 开启逻辑删除支持,只能配置一次
  18. private Boolean display;
  19. @Index( Integer.MAX_VALUE - 3 )
  20. private Date createTime;
  21. @Index( Integer.MAX_VALUE - 2 )
  22. private Date modifyTime;
  23. @Version // 开启乐观锁支持,只能配置一次
  24. @Index( Integer.MAX_VALUE - 1 )
  25. @Column( insertable = false )
  26. private Long version;
  27. // @Index主要对字段出现顺序进行干扰,对字段进行干扰以后,输出的顺序大概是这样:
  28. // => id, ..., display, create_time, modify_time, version
  29. // 如果您未使用@Index注解,那么字段的原始顺序是这样的:
  30. // => id, display, create_time, modify_time, version, ...
  31. // 默认输出会将父类的字段排在最前面
  32. // setter/getter...
  33. }

配置Mapper

  1. @Repository
  2. public interface AccountMapper extends Mapper<Account, AccountDTO, Long> {
  3. // 你自己的一些Api方法
  4. }

关于@Repository注解,您需要通过启动类配置@MapperScan来指定关于Mapper的扫描规则,各位根据自己的使用习惯进行配置,因为插件已经使用了Mapper这个名字,所以建议使用@Mapper这个注解。

使用方式

接下来就可以直接在任何可以使用Spring的地方注入或者获取Mapper接口了,关于mybatis-mapper的一些细则,你可以 点击这里查看更详细的文档

关于作者