多种方法解决Expected one result (or null) to be returned by selectOne(), but found: x 的错误

本文介绍了在使用Mybatis时遇到Expected one result错误的复现过程和分析方法。错误源于期望查询返回一条结果,但实际上返回了多条。解决方案包括修改查询方法为仅获取最新数据,避免使用selectOne()。文章提供了代码示例和解决思路。
摘要由CSDN通过智能技术生成

1. 复现错误


今天,测试小姐姐告诉我,测试环境的后台管理系统的首页报错了,并发过来如下的一张图:

在这里插入图片描述

由于,不能修改测试环境的数据库,只能备份测试环境的数据库,然后复制到我本地。

鼠标置于备份上,右键选择还原备份,点击开始即可,如下图所示:

在这里插入图片描述

【注意事项】,还原备份会替换掉当前数据库已有的数据,这个要谨慎执行。

备份到我本地后,使用本地的Knife4j,来测有问题的接口,如下图所示:

在这里插入图片描述

果然出现了异常,即

根据提供的引用内容,"Expected one result (or null) to be returned by selectOne(), but found: 10" 这句话代表了一种情况:你期望查询一条数据,但是实际上返回了多条数据。这可能是由以下原因引起的: 1. 数据库查询语句错误:请检查你的SQL语句是否正确,确保只返回一条数据或者null。你可以使用数据库管理工具或者命令行来验证你的SQL语句是否正确。 2. 返回值类型不匹配:请确保你的DAO接口中的返回值类型与MyBatis中的配置一致。如果你期望返回一条数据,那么返回值类型应该是一个对象或者null;如果你期望返回多条数据,那么返回值类型应该是一个列表或者集合。 3. 数据接收类型错误:请确保你在接收查询结果的地方使用了正确的数据类型。如果你期望返回一条数据,那么接收类型应该是一个对象;如果你期望返回多条数据,那么接收类型应该是一个列表或者集合。 如果你遇到了"Expected one result (or null) to be returned by selectOne(), but found: 10"这个问题,你可以按照以下步骤来解决: 1. 检查你的SQL语句,确保只返回一条数据或者null。 2. 检查你的DAO接口中的返回值类型,确保与MyBatis中的配置一致。 3. 检查你在接收查询结果的地方使用了正确的数据类型。 范例:根据提供的引用内容,"Expected one result (or null) to be returned by selectOne(), but found: 10" 这句话代表了一种情况:你期望查询一条数据,但是实际上返回了多条数据。这可能是由以下原因引起的: 1. 数据库查询语句错误:请检查你的SQL语句是否正确,确保只返回一条数据或者null。你可以使用数据库管理工具或者命令行来验证你的SQL语句是否正确。 2. 返回值类型不匹配:请确保你的DAO接口中的返回值类型与MyBatis中的配置一致。如果你期望返回一条数据,那么返回值类型应该是一个对象或者null;如果你期望返回多条数据,那么返回值类型应该是一个列表或者集合。 3. 数据接收类型错误:请确保你在接收查询结果的地方使用了正确的数据类型。如果你期望返回一条数据,那么接收类型应该是一个对象;如果你期望返回多条数据,那么接收类型应该是一个列表或者集合。 如果你遇到了"Expected one result (or null) to be returned by selectOne(), but found: 10"这个问题,你可以按照以下步骤来解决: 1. 检查你的SQL语句,确保只返回一条数据或者null。 2. 检查你的DAO接口中的返回值类型,确保与MyBatis中的配置一致。 3. 检查你在接收查询结果的地方使用了正确的数据类型。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

互联网全栈开发实战

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值