`
yourenyouyu2008
  • 浏览: 287830 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

mybatis 异常不友好 举例

 
阅读更多

  下面查询中表名T_DT_HOMEWORK_ARRANGE 应该换成T_DT_HOMEWORK,由于疏忽导致表名写错了。

<select id="getBackHomeworks" resultMap="BaseResultMap">
  select <include refid="Base_Column_List" />
  from T_DT_HOMEWORK_ARRANGE ha where ha.PROJECT_ID=#{projectId} and ha.HOMEWORK_STATUS=3 and ha.CREATOR_ID=#{userId}
 </select>

这样mybatis会报如下错误,意思是说没有查询到记录,但是正常情况下查询不到记录应该是空记录,而不是null,后来仔细检查后发现表名写错了,按道理表名错了查询语句应该报错才对,因为没有对应的字段,这样的话一眼就能看出问题所在了。

java.lang.NullPointerException
 at org.apache.ibatis.binding.MapperMethod.executeForMany(MapperMethod.java:127)
 at org.apache.ibatis.binding.MapperMethod.execute(MapperMethod.java:90)
 at org.apache.ibatis.binding.MapperProxy.invoke(MapperProxy.java:40)
 at $Proxy77.getBackHomeworks(Unknown Source)
 at cn.com.teacher.cistus.dt.service.HomeworkService.getBackHomeworks(HomeworkService.java:198)

分享到:
评论
1 楼 luchuanbaker 2019-04-29  
经过测试,实际上,mybatis并没有此问题,我也碰到了这样的问题,经过排查,发现是我们自己定义的拦截器在实现如下接口的方法时catch了所有的异常,然后返回了null
org.apache.ibatis.plugin.Interceptor#intercept
导致了上面的异常。
把try/catch改为try/finally即:将异常继续丢给上层处理,即可在控制台中看到错误信息。

相关推荐

    spingmvc+mybatis+统一异常处理机制

    采用springmvc+mybatis,搭建部分大致跟网上其他资料差不多,唯一不同的加入了统一错误处理,为了方便开发人员开发,所有错误码用一张表存在数据库中,然后由应用将整表缓存,缓存采用的spring自带的cache,开发中...

    mybatisX-idea插件

    MybatisX-idea插件是专为IntelliJ IDEA(简称IDEA)设计的一款扩展工具,旨在提升开发人员在使用Mybatis和Mybatis-Plus框架时的效率。它集成了许多实用功能,使得在DAO层代码与对应的XML映射文件之间的导航变得更加...

    mybatis使用实例

    MyBatis是一个优秀的Java持久层框架,它支持定制化SQL、存储过程以及高级映射。MyBatis避免了几乎所有的JDBC代码和手动设置参数以及获取结果集。MyBatis可以使用简单的XML或注解进行配置和原始映射,将接口和Java的...

    mybatis demo mybatis 实例

    MyBatis是一款优秀的持久层框架,它支持定制化SQL、存储过程以及高级映射。MyBatis避免了几乎所有的JDBC代码和手动设置参数以及获取结果集。MyBatis可以使用简单的XML或注解进行配置和原始映射,将接口和Java的POJOs...

    mybatis 注解别名找不到

    Cause: java.lang.ClassNotFoundException: Cannot find class: student 当你使用mybatis注解别名找不到文件时,在你的mybatis配置文件中加入 注意标签一定要放在标签下面

    mybatis-3.2.5.jar及mybatis-spring-1.2.2.jar

    MyBatis-Spring 会帮助你... 而且它也会处理事务, 翻译 MyBatis 的异常到 Spring 的 DataAccessException 异常(数据访问异常,译者注)中。最终,它并 不会依赖于 MyBatis,Spring 或 MyBatis-Spring 来构建应用程序代码。

    mybatis-plug.jar和 mybatis-plug的安装说明

    MyBatis-Plus是一个强大的扩展库,它是MyBatis框架的增强工具,旨在简化开发,减少常规 CRUD(创建、读取、更新、删除)操作的代码量。在本指南中,我们将详细介绍如何安装和使用mybatis-plus.jar以及相关的mybatis-...

    mybatis启动无线循环的抛出异常类

    mybatis启动无线循环的抛出异常类,只要用这个继承,就可以抛出异常

    mybatis-spring中文文档

    异常处理方面,MyBatis-Spring整合会将MyBatis异常转换成Spring框架统一的数据访问异常DataAccessException,这样程序在抛出异常时更加友好,并且可以使用Spring提供的异常处理机制来处理这些异常。 MyBatis-Spring...

    mybatis入门案例 mybatis入门案例

    mybatis入门案例mybatis入门案例mybatis入门案例mybatis入门案例mybatis入门案例mybatis入门案例mybatis入门案例mybatis入门案例mybatis入门案例mybatis入门案例mybatis入门案例mybatis入门案例mybatis入门案例...

    mybatis-3.1.1-bundle

    MyBatis ORM框架 ... 而且它也会处理事务, 翻译 MyBatis 的异常到 Spring 的 DataAccessException 异常(数据访问异常,译者注)中。最终,它并 不会依赖于 MyBatis,Spring 或 MyBatis-Spring 来构建应用程序代码。

    tkmybatis.rar

    TkMybatis的使用方式与Mybatis-Plus类似,但也有其独特的优点,如更丰富的注解支持和更友好的API设计。通过本文的介绍,相信你已经对如何在SpringBoot项目中集成并使用TkMybatis有了深入的理解,让我们一起享受更加...

    mybatis-platform_mybatis_

    - **防御机制**: Druid包含一系列的防御机制,如防止SQL注入、空指针异常等,增强了系统的安全性。 3. **集成MyBatis和Druid**: 在mybatis-platform项目中,MyBatis和Druid被整合使用,以提供高效、稳定的数据库...

    mybatis的中文api文档

    MyBatis是一款优秀的持久层框架,它支持定制化SQL、存储过程以及高级映射。MyBatis避免了几乎所有的JDBC代码和手动设置参数以及获取结果集。MyBatis可以对配置和原生Map使用简单的XML或注解,将接口和Java的POJOs...

    mybatis3.5.7.zip

    MyBatis 是一款优秀的持久层框架,它支持自定义 SQL、存储过程以及高级映射。MyBatis 免除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作。MyBatis 可以通过简单的 XML 或注解来配置和映射原始类型、接口和 ...

    MyBatis3官方中文文档

    MyBatis还提供了不通过XML构建SqlSessionFactory的选项,如果开发者更愿意直接从Java程序中创建configuration,或者创建自己的configuration构建器,MyBatis同样提供了完整的配置类,以提供所有和XML文件相同功能的...

    idea2018.1插件 MyBatis Plugins

    总的来说,MyBatis Plugins是IDEA用户处理MyBatis项目不可或缺的工具。通过整合各种实用功能,它将MyBatis的开发体验提升到了一个新的层次。如果你是一位MyBatis的忠实使用者,那么安装并熟练运用这个插件无疑将使你...

    MybatisGenerate_代码生成_tkMybatis_mybatisgenerate_mybatis_

    MybatisGenerate是一个强大的工具,主要用于自动化生成Mybatis相关的代码,以提高开发效率并减少手动编写重复性工作的负担。这个工具是基于tk.mybatis框架的,它整合了Mybatis的优秀特性,使得开发者能够更加便捷地...

    mybatis简介及示例

    3. 事务处理:MyBatis-Spring 提供了事务处理机制,能够将 MyBatis 的异常翻译到 Spring 的 DataAccessException 异常中。 4. 版本兼容:MyBatis-Spring 支持多种版本的 MyBatis 和 Spring,包括 MyBatis 3.0 和 ...

    MybatisX,idea插件

    MybatisX是一款针对IntelliJ IDEA(简称IDEA)开发的高效能Mybatis增强插件,旨在提升开发人员在使用Mybatis框架时的工作效率。这款插件的核心功能是实现Mapper接口与对应的XML映射文件之间的便捷跳转,使得开发者...

Global site tag (gtag.js) - Google Analytics