今天在写运行接口时出现以下的报错。

Error querying database,Cause:java.lang.reflect.UndeclaredThrowableException
The error may exist in file[mapper.xml文件路径]
The error may involve defaultParameterMap
The error occurred while setting parameters
SQL:select count(1) from tbl_ad_switch_inf where ad_channel = ? and trans_type = ?
Cause: java.lang.reflcet.UnderclaredThrowableException,data=null)

百度该错误信息总结如下:

原理:Mybatis 是通过 XML 文件去完成持久化和数据库表之间的映射关系的。即报错可能是mapper 文件的属性和实体类的属性不一致导致反射出错。

原因:

1、mapper 文件的路径写错

2、mapper 文件中的方法名写错了(id 的值一定要对应 dao 层接口中的方法名)。

3、getter、setter(方法没写)。

4、sql 语句中可能包含数据库的关键字(非 java 关键字)

5、mapper 文件中 命名空间(namespace)出错

6、实际开发中会有多个数据库(你要确定本地启动连接的是哪个数据库)

7、如果 mapper 文件中插入的字段数据库表里没有也会报这个错

按照网上查询的前五条试了都没问题,可是本地测试还是报错。最终在同事的帮助下,发现是数据库连接的不对。实际开发中会有多个数据库,本地项目启动连接的数据库中没有创建对应的表,所以会报以上错误。

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐