2010-08-27 60 views
1

考慮這個查詢:使用SQL函數

insert (a, b, update_time) values (1, 1, now() - interval 10 second) 

現在,我需要將其轉換爲一個參數化的語句:

insert (a, b, update_time) values (?, ?, ?) 

問題是你不能在參數中使用SQL函數。我該如何編寫這種代碼?

+0

你可以使用Java代碼來計算它嗎? – YoK 2010-08-27 16:51:09

+0

沒關係。我已經得到了答案。 – user398384 2010-08-27 17:00:38

回答

2
Date now = new Date(); 
PreparedStatement ps = connection.prepareStatement("INSERT INTO your_table(a, b, update_time) VALUES(?, ?, ?)"); 
ps.setObject(1, a); 
ps.setObject(2, b); 
ps.setDate(3, now); 
ps.executeUpdate(); 
1

有沒有必要參數日期代碼:

insert (a, b, update_time) values (?, ?, now() - interval 10 second)

現在只需要兩個參數和日期將在服務器上進行處理。我在JDBC和MySQL之間有關夏令時的時區問題。小心!