我有一個PreparedStatement,用於插入一大堆列數據的行。但是,對於其中一列(時間戳),如果該值爲空,我希望它在服務器上執行getDate()
。如何在JDBC PreparedStatement中設置公式
據我所知,我可以只做new Date()
,但這並不奏效,因爲由於遺留報告,它需要完全匹配具有自動插入值的另一列。
讓我們也說我不能改變模式,並添加一個默認值的列。
有沒有什麼辦法可以在PreparedStatement中將公式設置爲參數?
編輯添加的: 下面是它本質上是什麼目前:
PreparedStatement statement = connection.prepareStatement("insert into row (name, starttime) values (?, ?)")
statement.setString(1, name);
statement.setDate(2, date);
我要的是,這樣的:
PreparedStatement statement = connection.prepareStatement("insert into row (name, starttime) values (?, ?)")
statement.setString(1, name);
if(date != null)
statement.setDate(2, date);
else
statement.setFormula(2, "getdate()");
我的理解是:
if(date == null)
date = new Date();
是基本上是一樣的東西,但在我們的情況下,它不是。
你能再詳細一點嗎?我對手邊的實際問題感到困惑。你提到什麼樣的配方,作爲預備聲明的一部分,它有什麼好處? – Peaches491
@ Peaches491編輯以獲取更好的信息 –