mybatis-mapper 2.2.2 发布
05-21 08:31 来源:oschina 阅读(291)

官方文档 https://mapper.mybatis.io/ 新增加了 2.x 版本的新文档,快速上手、接口介绍、注解配置更新了大量最新内容,欢迎查阅。

功能增强

性能优化

兼容性改进

测试与质量保证

贡献者

Example 新增变化介绍

所有方法增加了一个带 boolean useCondition 参数的方法,示例如下:

@Test
public void testExampleUseCondition() {
  try (SqlSession sqlSession = getSqlSession()) {
    ExampleMapper<User, Example<User>> exampleMapper = sqlSession.getMapper(UserMapper.class);
    Example<User> example = new Example<>();

    User user = new User();
    user.setUserName("殷%");

    example.createCriteria()
        .andNotEqualTo(Objects.nonNull(user.getId()), User::getId, user.getId())
        .andLike(Utils.isNotBlank(user.getUserName()), User::getUserName, user.getUserName())
        .andEqualTo(Utils.isNotBlank(user.getSex()), User::getSex, user.getSex());
    Assert.assertEquals(5, exampleMapper.countByExample(example));
  }
}

还有一个 createCriteriaSelective 方法,默认会校验值是否为空,如果空就不使用条件:


@Test
public void testExampleUseSelective() {
  try (SqlSession sqlSession = getSqlSession()) {
    ExampleMapper<User, Example<User>> exampleMapper = sqlSession.getMapper(UserMapper.class);
    Example<User> example = new Example<>();

    User user = new User();
    user.setUserName("殷%");
    user.setSex("女");

    example.createCriteriaSelective()
        .andLike(User::getUserName, user.getUserName())
        .andEqualTo(User::getId, user.getId())
        .andNotEqualTo(User::getSex, user.getSex());

    Assert.assertEquals(3, exampleMapper.countByExample(example));
  }
}