The goal of the two methods is different:
Essentially, when you use fetchOne() request should return 0 or 1 record. When you use fetchAny() query can return any number of records, and if the database returns any record, the first one retrieved from the JDBC result set will be returned.
Note that fetchOne() is thus trying to fetch 2 entries from the JDBC driver (decide whether TooManyRowsException needs to be thrown), while fetchAny() only gets at most 1 record.
Lukas Eder
source share