Las bases de datos distintas de Oracle en realidad distinguen entre tres tipos de datos diferentes:
DATEsolo fecha, sin horaTIMEúnica hora del día, sin fechaTIMESTAMPambos, fecha y hora.
JDBC intenta abstraer los conceptos de SQL estándar y los tres tipos de datos anteriores están definidos por ANSI SQL y, por lo tanto, JDBC necesita admitirlos.
Como la fecha de Oracle siempre incluye la hora, tiene usar setTimestamp() de lo contrario, el tiempo se pierde cuando lo almacena en la base de datos.