Ответ 1
Цель двух методов различна:
-
Возвращает:
Результирующая запись или ноль, если запрос не возвращает записей.
Броски:
TooManyRowsException
- если запрос возвратил больше чем одну запись -
Возвращает:
Первая результирующая запись или ноль, если запрос не возвращает записей.
По сути, когда вы используете fetchOne()
запрос должен возвращать 0 или 1 запись. Когда вы используете fetchAny()
запрос может вернуть любое количество записей, и, если база данных вернет какую-либо запись, будет возвращена первая, извлеченная из результирующего набора JDBC.
Обратите внимание на то, что fetchOne()
, таким образом попытаться принести 2 записи из драйвера JDBC (решить, будет ли TooManyRowsException
нужно быть выброшен), в то время как fetchAny()
получает только самое большее 1 запись.