当前位置:首页 > Java技术 > one方法报错 select

one方法报错 select

2022年11月07日 16:54:39Java技术7

最近在部署性能测试环境的时候,环境 部署好以后,部分功能出现接口查询异常,问题现象:

拿到错误,肯定要先判断是前端还是后端代码的问题,最简单的方式是抓包查看:

以上是报错页面捕获的接口报错,很明显的接口已经报错了,那么就直接查看后端的日志:

查看日志分两步:

1.查看网关web端的日志:

从日志可以知道,出错的地方在selectOrgDetail接口查询上

com.xxx.postlend.debtmanagement.service.org.impl.OrgServiceImpl.selectOrgDetail(OrgServiceImpl.java:42)

2.继续查看APP服务端的日志报错:

org.springframework.web.util.NestedServletException: Request processing failed; nested exception is org.mybatis.spring.MyBatisSystemException:

nested exception is org.apache.ibatis.exceptions.TooManyResultsException: Expected one result (or null) to be returned by selectOne(), but found: 2

你想查询一条数据,但是从数据库返回两条数据

看到这个错误,就知道是查询数据库的记录,查询到2条,而期望的结果是1条,即selectOne函数的查询结果,导致报错

到这个错误的原因就是因为你的查询方法中得到两个两个结果集,然而你的返回用了一个实体去接收,程序这个时候就不知道如何去分配了,很果断的报这个错,

修改方法为使用一个list来接收就没有问题了。

其实从这个selectOne方法也可以猜出来

期望selectOne()返回一个结果(或null),但找到:2

然后我就看了下dao层的接口 是Office getOffice(id); 查的是一条数据,可结果返回的是2条数据的结果集。当然报错咯!

解决方法是将接口改为list

ListgetOffice(String id);

mybatis和spring整合后,dao中的接口

public Student getUser(Student userStudent);

会自动选择selectOne()方法,由于只能返回一个对象的结果,当返回到多个对象的结果集时报错。getUser是一个student类的bean无法接受多个结果集,则改用List就可以接受多个结果集

将dao中的

public Student getUser(Student userStudent);

改为

import java.util.List;

public List getUser(Student userStudent);

从日志报错的信息查看,问题出现在APP端的代码如下:

at com.xxx.postlend.debtoauth2.service.biz.impl.OrganizationServiceImpl.selectOrgDetailInfo(OrganizationServiceImpl.java:217)

通过代码查看,这个selectOne查询方式是mybatis框架的自动生成sql查询语句,所以无法查看具体的sql mapper映射文件

需要通过监控,这个接口执行的所有sql如下:

拿到上述的sql去mysql客户端工具里执行验证一下,查看是否存在主键查询出现两条记录的sql

果然发现存在2个orgId导致的报错,删除两个记录中的一个

问题完美解决

通过这个例子,其实大家在测试过程中肯定会遇见各种各样的环境问题,当出现问题的时候,首先判断问题的类型

然后通过web端还是app端的问题,通过日志打印的堆栈,以及查看代码的方式,寻找问题的出现的原因,这样才能慢慢的提升

作者:weixin_39977586
来源链接:https://blog.csdn.net/weixin_39977586/article/details/111963999

版权声明:
1、JavaClub(https://www.javaclub.cn)以学习交流为目的,由作者投稿、网友推荐和小编整理收藏优秀的IT技术及相关内容,包括但不限于文字、图片、音频、视频、软件、程序等,其均来自互联网,本站不享有版权,版权归原作者所有。

2、本站提供的内容仅用于个人学习、研究或欣赏,以及其他非商业性或非盈利性用途,但同时应遵守著作权法及其他相关法律的规定,不得侵犯相关权利人及本网站的合法权利。
3、本网站内容原作者如不愿意在本网站刊登内容,请及时通知本站(javaclubcn@163.com),我们将第一时间核实后及时予以删除。


本文链接:https://www.javaclub.cn/java/68353.html

标签: Exception
分享给朋友:

“one方法报错 select” 的相关文章

java空指针异常:java.lang.NullPointException

一.什么是java空指针异常     我们都知道java是没有指针的,这里说的"java指针"指的就是java的引用,我们不在这里讨论叫指针究竟合不合适,而只是针对这个异常本身进行分析。空指针就是空引用,java空指针异常就是引用本身为空,却调用了方...

2.Java中Exception和Error的区别

2.Java中Exception和Error的区别

Exception和Error都是继承了Throwable类,在Java中只有Throwable类型的实例才可以被抛出(throw)或者捕获(catch),它是异常处理机制的基本组成类型 Error是指在正常情况下,不大可能出现的情况,绝大部分的Error都会导致程序(比...

UNEXPECTED TOP-LEVEL EXCEPTION: com.android.dex.DexException: Multiple dex files define

UNEXPECTED TOP-LEVEL EXCEPTION: com.android.dex.DexException: Multiple dex files define

问题描述: 最近在调试一个项目A,A项目需要依赖libraryB,C,D,在调试的时候遇到如下Error: Error:Execution failed for task ':BlogClient:transformClassesWithDexForDebug...

Exception details are logged in Window > Show View > Error Log

Exception details are logged in Window > Show View > Error Log

今天练习布局,发现使用了EditText之后,屏幕一片灰色,并且报错: Exception raised during rendering: java.lang.System.arraycopy([CI[CII)VException details are logged in W...

android ExceptionInInitializerError解决办法

09-20 01:13:36.180: E/AndroidRuntime(5202): FATAL EXCEPTION: main 09-20 01:13:36.180: E/AndroidRuntime(5202): java.lang.ExceptionInInitiali...

Android studio中导入开源库出现com.android.ide.common.process.ProcessException 错误

今天在Android Studio 上导入一个gitthub 开源项目的时候发现 gradle构建项目的时候出现错误: Error:Execution failed for task :myapp:dexDebug. com.android.ide.common.proce...

用Jenkins部署war包到tomcat8报错

用Jenkins部署war包到tomcat8报错"ERROR: Build step failed with exception org.codehaus.cargo.container.ContainerException: Failed to redeploy"的解决办法

一、 Jenkins部署war包到tomcat8 1. 构建结果FAILURE     查看Jenkins控制台,输出的报错的信息如下:   [JENKINS] Archiving /var/lib/jenkins...

异常处理之[Error: com.android.ide.common.process.ProcessException]

异常处理之[Error: com.android.ide.common.process.ProcessException]

昨天开发过程中,build时出现异常,错误消息如下: Error:java.util.concurrent.ExecutionException:com.android.ide.common.process.ProcessException: Er...

[android Studio] unhandled exception: android.os.RemoteException

Android Studio中,如果代码有错误,红色波浪线提示,光标定位到错误代码行时,可以看到代码错误原因描述, 点击旁边的图标,或者用快捷键Alt + Enter,就可以看到修复这个问题的提示, Add exception to method signa...

springboot启动总是启动不起来UnsatisfiedDependencyException异常

springboot启动总是启动不起来UnsatisfiedDependencyException异常

采用debug模式启动总是停留在 点击后: 鼠标放在ex上: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。