I database diversi da Oracle in realtà distinguono tre diversi tipi di dati:
DATE
solo data, senza oraTIME
solo ora del giorno, nessuna dataTIMESTAMP
entrambi, 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.