fetchAny()
和fetchOne()
之间是否存在(实际)差异?两者都返回一个记录。 API文档是相同的,但实现(在github上)是不同的。
答案 0 :(得分:13)
这两种方法的意图不同:
<强>返回:强>
结果记录,如果查询未返回任何记录,则返回null。
<强>抛出:强>
TooManyRowsException
- 如果查询返回了多条记录
<强>返回:强>
第一个结果记录,如果查询未返回任何记录,则返回null。
实质上,当您使用fetchOne()
时,查询必须返回0或1条记录。当您使用fetchAny()
时,查询可能会返回任意数量的记录,如果数据库返回任何记录,则将返回从JDBC结果集中获取的第一个记录。
答案 1 :(得分:2)
The javadoc解释了差异。 fetchAny()
返回第一条记录,而fetchOne()
期望查询返回零或一条记录,如果查询返回多条记录,则抛出异常。