¿Java solo puede usar JDBC para operar la base de datos?
Sí, pero puedes usar otros paquetes que encapsulan jdbc para operar la base de datos. Hibernate encapsula jdbc. El uso de hibernate para operar la base de datos en realidad todavía usa jdbc, pero encapsulan jdbc en hibernate, por lo que no debemos preocuparnos por eso.