Вставить значение отметки времени в PreparedStatement
проблема
Простой скрипт таблицы в базе данных Oracle.
CREATE TABLE DBUSER ( USER_ID NUMBER (5) NOT NULL, USERNAME VARCHAR2 (20) NOT NULL, CREATED_BY VARCHAR2 (20) NOT NULL, CREATED_DATE DATE NOT NULL, PRIMARY KEY ( USER_ID ) )
Не знаю, как вставить значение метки времени, например «04/04/2011 14:45:04» в поле «CREATED_DATE» через JDBC PreparedStatement.
String insertTableSQL = "INSERT INTO DBUSER"
+ "(USER_ID, USERNAME, CREATED_BY, CREATED_DATE) VALUES"
+ "(?,?,?,?)";
preparedStatement = dbConnection.prepareStatement(insertTableSQL);
preparedStatement.setTimestamp(4,???);
Решение
Создайте метод для возврата текущей отметки времени (java.sql.Timestamp) следующим образом:
private static java.sql.Timestamp getCurrentTimeStamp() {
java.util.Date today = new java.util.Date();
return new java.sql.Timestamp(today.getTime());
}
И установите метку времени черезpreparedStatement.setTimestamp().
String insertTableSQL = "INSERT INTO DBUSER"
+ "(USER_ID, USERNAME, CREATED_BY, CREATED_DATE) VALUES"
+ "(?,?,?,?)";
preparedStatement = dbConnection.prepareStatement(insertTableSQL);
preparedStatement.setTimestamp(4,getCurrentTimeStamp());
Note
Обратитесь к этому полномуJDBC
PreparedStatement insert timestamp example.