v1.0.3

2021年11月2日 - 1.0.3 发布了:tada::tada::tada:

mybatis-mapper 项目升级为 1.0.3:

  1. mybatis-common 项目中缺少默认语言包,已经将中文设置为默认语言包。
  2. 解决 Example 中的 orderBy 多次时连接字符串错误的 BUG,增加多个方便使用的 orderBy 方法。
  3. 修复 Example.selectColumns 关键词列名的Bug #16 by ydq
  4. Example 系列方法 支持拼接单层级的 OR 条件 #17 by ydq 尝试性的支持 #15 单层级(不支持 andOr() 条件里面 继续嵌套更细粒度的 andOr() )的 or 条件拼接
    1. //example:
    2. UserMapper2 mapper = sqlSession.getMapper(UserMapper2.class);
    3. Example<User> example = mapper.example();
    4. example.createCriteria()
    5. .andEqualTo(User::getSex,"男")
    6. .andOr(example.orPart()
    7. .andLike(User::getUserName,"杨%"),
    8. example.orPart()
    9. .andLike(User::getUserName,"俞%")
    10. .andLike(User::getUserName,"%舟"));
    输出SQL(支持 select 和 update):
    1. xxx WHERE ( sex = ? AND ( ( name LIKE ? ) OR ( name LIKE ? AND name LIKE ? ) ) )
  5. Fn<T, R>功能优化,增加缓存,支持引用父类方法,示例如下:

    1. public static class BaseId {
    2. @Entity.Column(id = true)
    3. private Long id;
    4. public Long getId() {
    5. return id;
    6. }
    7. public void setId(Long id) {
    8. this.id = id;
    9. }
    10. }
    11. public static class BaseEntity extends BaseId {
    12. @Entity.Column(value = "when_create", jdbcType = JdbcType.TIMESTAMP)
    13. private Long whenCreate;
    14. public Long getWhenCreate() {
    15. return whenCreate;
    16. }
    17. public void setWhenCreate(Long whenCreate) {
    18. this.whenCreate = whenCreate;
    19. }
    20. }
    21. @Entity.Table("sys_user")
    22. public static class SysUser extends BaseEntity {
    23. @Entity.Column("name")
    24. private String userName;
    25. public String getUserName() {
    26. return userName;
    27. }
    28. public void setUserName(String userName) {
    29. this.userName = userName;
    30. }
    31. }
    32. @Entity.Table("sys_role")
    33. public class SysRole extends BaseEntity {
    34. @Entity.Column("name")
    35. private String roleName;
    36. public String getRoleName() {
    37. return roleName;
    38. }
    39. public void setRoleName(String roleName) {
    40. this.roleName = roleName;
    41. }
    42. }
    43. @Test
    44. public void testExtends() {
    45. Assert.assertEquals("id", ((Fn<SysUser, Object>) SysUser::getId).toField());
    46. Assert.assertEquals("id", ((Fn<SysUser, Object>) SysUser::getId).toColumn());
    47. Assert.assertEquals("whenCreate", ((Fn<SysUser, Object>) SysUser::getWhenCreate).toField());
    48. Assert.assertEquals("when_create", ((Fn<SysUser, Object>) SysUser::getWhenCreate).toColumn());
    49. Assert.assertEquals("userName", ((Fn<SysUser, Object>) SysUser::getUserName).toField());
    50. Assert.assertEquals("name", ((Fn<SysUser, Object>) SysUser::getUserName).toColumn());
    51. Assert.assertEquals("id", ((Fn<SysRole, Object>) SysRole::getId).toField());
    52. Assert.assertEquals("id", ((Fn<SysRole, Object>) SysRole::getId).toColumn());
    53. Assert.assertEquals("whenCreate", ((Fn<SysRole, Object>) SysRole::getWhenCreate).toField());
    54. Assert.assertEquals("when_create", ((Fn<SysRole, Object>) SysRole::getWhenCreate).toColumn());
    55. Assert.assertEquals("roleName", ((Fn<SysRole, Object>) SysRole::getRoleName).toField());
    56. Assert.assertEquals("name", ((Fn<SysRole, Object>) SysRole::getRoleName).toColumn());
    57. }

2021年10月24日 - 1.0.2 发布 :confused:

  1. 核心项目 mybatis-provider 项目升级到 1.0.2,解决下面两个问题:

    1. 字段名关键词bug,当配置如 column="[order]" 时,会出现 [order] AS order,导致SQL关键字出错。by darren
    2. EntityTable 处理列时加锁,避免并发时多次执行。
  2. 【已废弃】mybatis-mapper 项目升级为 1.0.2:

    1. mybatis-common 项目中缺少默认语言包,已经将中文设置为默认语言包。
    2. 解决 Example 中的 orderBy 多次时连接字符串错误的 BUG,增加多个方便使用的 orderBy 方法。

mybatis-mapper 1.0.2没有合并develop分支,因此上述两个更新内容都没包含,因此不要使用该版本。

mybatis-provider 1.0.2 版本正常,可以使用。