Zeitstempelwert in PreparedStatement einfügen

Fügen Sie den Zeitstempelwert in PreparedStatement ein

Problem

Ein einfaches Tabellenskript in der Oracle-Datenbank.

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 )
 )

Keine Ahnung, wie ein Zeitstempelwert eingefügt werden soll, z. "04/04/2011 14:45:04" in das Feld "CREATED_DATE" über JDBC PreparedStatement.

String insertTableSQL = "INSERT INTO DBUSER"
        + "(USER_ID, USERNAME, CREATED_BY, CREATED_DATE) VALUES"
        + "(?,?,?,?)";
preparedStatement = dbConnection.prepareStatement(insertTableSQL);
preparedStatement.setTimestamp(4,???);

Lösung

Erstellen Sie eine Methode, um den aktuellen Zeitstempel (java.sql.Timestamp) wie folgt zurückzugeben:

private static java.sql.Timestamp getCurrentTimeStamp() {

    java.util.Date today = new java.util.Date();
    return new java.sql.Timestamp(today.getTime());

}

Und setzen Sie den Zeitstempel überpreparedStatement.setTimestamp().

String insertTableSQL = "INSERT INTO DBUSER"
    + "(USER_ID, USERNAME, CREATED_BY, CREATED_DATE) VALUES"
    + "(?,?,?,?)";
preparedStatement = dbConnection.prepareStatement(insertTableSQL);
preparedStatement.setTimestamp(4,getCurrentTimeStamp());

Note
Beziehen Sie sich auf diese vollständigenJDBC PreparedStatement insert timestamp example.