栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

浅谈my batis 下的Bind

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

浅谈my batis 下的Bind

mybatis 的Binding 测试如下:
测试代码:

 @Test
  void shouldExecuteBoundSelectMapOfBlogsById() {
    try (SqlSession session = sqlSessionFactory.openSession()) {
      BoundBlogMapper mapper = session.getMapper(BoundBlogMapper.class);
      Map blogs = mapper.selectBlogsAsMapById();
      assertEquals(2, blogs.size());
      for(Map.Entry blogEntry : blogs.entrySet()) {
        assertEquals(blogEntry.getKey(), (Integer) blogEntry.getValue().getId());
      }
    }
  }

mapper 接口文件:

 @Select({ "SELECT * FROM blog"})
  @MapKey("id")
  Map selectBlogsAsMapById();

接着就是实现文件:
测试如下:

如果我们mapper 文件写错了,会怎么样呢?
如下:





  



接口方法:

public interface WrongNamespaceMapper {

  void get();

}

断言抛出了runtimeException:

 @Test
  void shouldFailForBothOneAndMany() {
    Configuration configuration = new Configuration();
    Assertions.assertThrows(RuntimeException.class, () -> {
      configuration.addMapper(MapperWithOneAndMany.class);
    });
  }


那么我们如上的命名空间写错了,怎么办呢?

这里也会抛出异常。

同理:丢失了命名空间也是错误的:





  


测试文件如下:

 @Test
  void shouldFailForMissingNamespace() {
    Configuration configuration = new Configuration();
    Assertions.assertThrows(RuntimeException.class, () -> configuration.addMapper(MissingNamespaceMapper.class));
  }

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/871752.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号