問題
- 使用java.util.Date無法直接插入MySQL,似乎 必須使用java.sql.Date
- 如果在MySQL中使用timestamp(時間戳),所能表示的時間有限
- 將java.util.Date插入MySQL的datetime時(使用preparedStatement),發現時分秒信息丟失
解決
其實是個大神們早已解答過的問題,在該方案中不需要java.sql.Date類型。先獲取形如“2017/05/12 2:59:10”這樣一個字符串:
java.util.Date dt = new java.util.Date();
java.text.SimpleDateFormat sdf =
new java.text.SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String currentTime = sdf.format(dt);
再將該值插入MySQL。
插入時,直接使用setString方法。(一開始沒想到這麼暴力,試了很多次才發現原來真真相就是這麼簡單……)
String sql = "insert into times values(?)";
pStatement = connection.prepareStatement(sql);
pStatement.setString(1, currentTime);
pStatement.execute();
如果直接使用字符串拼接將會出錯。
總結
還是要敢於嘗試呀。