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 ) )
タイムスタンプ値を挿入する方法がわかりません。 JDBC PreparedStatementを介して、「04/04/2011 14:45:04」を「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());
Note
この完全なJDBC
PreparedStatement insert timestamp exampleを参照してください。