fetchAny()
和 fetchOne()
之间有(真正的)区别吗?两者都返回准确的一条记录。 API 文档相同,但实现(在 github 上)不同。
最佳答案
两种方法的目的不同:
-
Returns:
The resulting record or null if the query returns no records.
Throws:
TooManyRowsException
- if the query returned more than one record -
Returns:
The first resulting record or null if the query returns no records.
本质上,当您使用 fetchOne()
时,查询必须返回 0 或 1 条记录。当您使用 fetchAny()
时,查询可能会返回任意数量的记录,如果数据库返回任何记录,将返回从 JDBC 结果集中获取的第一条记录。
注意 fetchOne()
将因此尝试从 JDBC 驱动程序中获取 2 条记录(以决定是否需要抛出 TooManyRowsException
),而 fetchAny( )
最多只获取 1 条记录。
关于java - jOOQ - fetchAny 和 fetchOne 之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30307448/