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」を「CREATED_DATE」フィールドに入力します。
String insertTableSQL = "INSERT INTO DBUSER"
+ "(USER_ID, USERNAME, CREATED_BY, CREATED_DATE) VALUES"
+ "(?,?,?,?)";
preparedStatement = dbConnection.prepareStatement(insertTableSQL);
preparedStatement.setDate(4, ???);
溶液
「preparedStatement.setDate()」メソッドはjava.sql.Dateパラメータを受け入れるため、java.util.Dateからjava.sql.Dateに変換する必要があります。
たとえば、現在の日付を返すメソッドを作成し、それをjava.sql.Dateに変換します。
private static java.sql.Date getCurrentDate() {
java.util.Date today = new java.util.Date();
return new java.sql.Date(today.getTime());
}
そして、preparedStatement.setDate()を介して返される日付を設定します。
String insertTableSQL = "INSERT INTO DBUSER"
+ "(USER_ID, USERNAME, CREATED_BY, CREATED_DATE) VALUES"
+ "(?,?,?,?)";
preparedStatement = dbConnection.prepareStatement(insertTableSQL);
preparedStatement.setDate(4, getCurrentDate());
完了しました。