Bancos de dados diferentes do Oracle realmente distinguem entre três tipos de dados diferentes:
DATE
apenas data, sem horaTIME
única hora do dia, sem dataTIMESTAMP
ambos, data e hora.
O JDBC tenta abstrair os conceitos SQL padrão e os três tipos de dados acima são definidos pelo ANSI SQL e, portanto, o JDBC precisa suportá-los.
Como a data da Oracle sempre inclui a hora, você tem para usar
setTimestamp()
caso contrário, o tempo será perdido ao armazená-lo no banco de dados.