問題

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

“をJDBC PreparedStatementを介して ”

CREATED__DATE

“フィールドに追加します。

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


insert


jdbc

リンク://タグ/preparedstatement/[preparedstatement]

timestamp