I database diversi da Oracle in realtà distinguono tre diversi tipi di dati:
DATEsolo data, senza oraTIMEsolo ora del giorno, nessuna dataTIMESTAMPentrambi, data e ora.
JDBC cerca di astrarre concetti SQL standard e i tre tipi di dati sopra sono definiti da ANSI SQL e quindi JDBC deve supportarli.
Poiché la data di Oracle include sempre l'ora, hai per usare setTimestamp() altrimenti il tempo viene perso quando lo memorizzi nel database.