我正在尝试使用 Spring 'CallableStatementCreator' 在 Java EE Web 应用程序 (java) 中调用 Oracle 存储过程。存储过程的输入之一是 DATE。
我的 attributeValue 是一个 java.util.date,它正确地保存了 DD-MM-YYYY 和 HH:MM:SS。使用以下代码时:
callableStmt.setTime(6, new java.sql.Time(attributeValue.getTime()));
结果是数据库中的列(存储过程最终写入数据库)设置为 1970-01-01,并且我将正确的 HH:MM:SS 作为输入传递。这适用于我的应用程序的早期版本(我使用 JDBC lib 10.xxx)
如果我使用
callableStmt.setDate(6, new java.sql.Date(attributeValue.getTime()));
DD-MM-YYYY 设置正确,但小时设置为 00:00:00。
那么,调用属性并将属性传递给这个存储过程的正确方法是什么?另外,有什么调试技巧吗?
Oracle Database 11g Enterprise Edition Release 11.2.0.2.0 - 64 位生产 Oracle JDBC 库:ojdbc6-11.2.0.3