Mybatis 通用 Mapper 3.5.0 已发布。MyBatis 通用 Mapper 极其方便的使用 MyBatis 单表的增删改查,支持单表操作,不支持通用的多表联合查询。通用 Mapper 可以极大的方便开发人员。可以随意的按照自己的需要选择通用方法,还可以很方便的开发自己的通用方法。 通用 Mapper 更新日志 兼容 mbg 1.3.6 版本。 EntityColumn 记录 EntityField 信息,方便后续扩展使用。 针对 update 两个基本方法增加乐观锁功能,在实体类对版本字段增加 @Version 注解即可,默认支持 Integer 和 Long类型,其他情况可以实现 NextVersion 接口并在注解中指定该实现,一个实体类中最多只能有一个加 @Version 注解的字段。 3.4.0增加的 useSimpleType 默认值改为 true,默认忽略复杂类型的字段,复杂类型不需要加 @Transient 注解,具体类型可以参考 SimpleTypeUtil 类。 新增 annotationAsSimpleType 参数,默认 false,设置为 true 后会把枚举作为简单类型对待,需要配合 useSimpleType = true 使用。 新增 wrapKeyword 参数,配置后会自动处理关键字,可以配的值和数据库有关,例如 sqlserver 可以配置为 [{0}],使用 {0} 替代原来的列名。 FieldHelper 改为判断当前jdk版本是否为6和7,其他情况按jdk8处理,因此支持jdk9+ 新增 selectOneByExample 方法,必须保证返回值最多 1 个,否则抛出异常。 增加新的 tk.mybatis.mapper.additional.insert.InsertListMapper,这个批量插入方法不支持主键策略,不会返回自动生成的主键 使用 @Version 注解的效果如下: DEBUG [main] - ==> Preparing: UPDATE country SET countryname = ?,countrycode = ?,version = 2 WHERE id = ? AND version = ? DEBUG [main] - ==> Parameters: 美国2(String), US(String), 174(Integer), 1(Integer) 自动处理关键字代码: //自动处理关键字 if (StringUtil.isNotEmpty(wrapKeyword) && SqlReservedWords.containsWord(columnName)) { columnName = MessageFormat.format(wrapKeyword, columnName); } 通用 Mapper - Starter 更新日志 通用 Mapper 对应的 mapper-boot-starter 也进行了大量改动。 通用 Mapper 3.5.0 去掉 mybatis-spring-boot-starter 依赖,不在使用 mybatis 官方 starter,使用通用 Mapper 时不要再引入官方 starter 参考 mybatis 官方 starter 重新实现,解决 mapper 初始化可能存在的问题 pr#5 by fengcbo 如果需要使用 @MapperScan 请选择 tk 开头的 tk.mybatis.spring.annotation.MapperScan 使用 Maven 3;font-family:"font-size:16px;background-color:#FFFFFF;"> <dependency> <groupId>tk.mybatis</groupId> <artifactId>mapper</artifactId> <version>3.5.0</version> </dependency> 如果你使用 Spring Boot 可以直接引入: <dependency> <groupId>tk.mybatis</groupId> <artifactId>mapper-spring-boot-starter</artifactId> <version>1.2.0</version> </dependency> Mybatis 通用 Mapper 3.5.0 发布下载地址