DB2データベースのクエリを書くためにSpring JDBC Frameworkを使用するJava Webアプリケーションを作成しました。これまでのところ、すべてのクエリが優れています。Spring JDBC Frameworkで「null」タイムスタンプをDB2データベースに挿入する方法
私は今日私のデータベースにあるテーブルのINSERTクエリを作成しようとしました。私の最初のクエリは、次のされた
private Timestamp getCurrentDateTimeInTimeStamp() {
LocalDateTime currentDateAndTime = LocalDateTime.now();
currentDateAndTime.format(DateTimeFormatter.ofPattern("yyy-MM-dd HH:MM:SS.mm")).replaceAll("T", " ");
Timestamp timestamp = Timestamp.valueOf(currentDateAndTime);
return timestamp;
}
public void insertNewUserToDatabase(String username){
Timestamp timestamp = getCurrentDateTimeInTimeStamp();
String SQL = "INSERT INTO MYDB.USERSUBSCRIPTION (USERNAME, SUBSCRIPTIONDATETIME, UNSUBSCRIPTIONDATETIME) " +
"VALUES(?, ?, ?)";
this.jdbcTemplateObject = new JdbcTemplate(dataSource);
jdbcTemplateObject.update(SQL,new Object[] { username, timestamp, null});
}
:
私は次のメソッドを作成し、私のJavaクラスでINSERT INTO MYDB.USERSUBSCRIPTION (USERNAME, SUBSCRIPTIONDATETIME, UNSUBSCRIPTIONDATETIME)
VALUES('JamesTheBoss', '2017-07-07 07:07:07.007', null);
:クエリは、DB2クエリーとして動作し、それはこのようになり、ストレートforword本当にあります
public List<UserSubscription> getAllUserSubscriptions() throws SQLException {
String SQL = "SELECT * FROM MYDB.USERSUBSCRIPTION";
this.jdbcTemplateObject = new JdbcTemplate(dataSource);
List<UserSubscription> userSubscription = jdbcTemplateObject.query(SQL, new UserSubscriptionMapper());
return userSubscription;
}
他のすべてのクエリと同様に正常に動作します。
タイムスタンプパラメータとして「null」を挿入しようとすると、例外になります。
Spring JDBC Frameworkを使用してタイムスタンプに「null」値を挿入するにはどうすればよいですか?
フィードバックをいただきありがとうございます。
例外の内容をお知らせください。そしてあなたのデータベーステーブルがどのように定義されているか。タイムスタンプ列は、データベースでNULL可能と定義されていますか? – Ben