Javaを使ってMySQLにdatetimeを挿入して、タイムアウトを防ぐ.

1687 ワード

問題
  • java.util.Dateを使って直接MySQLを挿入できません.java.sql.Dateを使用しなければならないようです.
  • MySQLにtimestamp(タイムスタンプ)を使用すれば、表現できる時間は限られています.
  • は、java.util.DateをMySQLのdatetimeに挿入する際(prepardSttementを使用して)、発見した時、分秒情報が
  • 失われました.
    解決
    Stock Overflow上の問題
    実は大神たちがとっくに解いている問題です.この案には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に挿入します.挿入時はそのままset Stringメソッドを使用します.(最初はこんなに暴力的だったとは思いませんでした.何度も試してみて、真実はこんなに簡単だったのです.)
    String sql = "insert into times values(?)";
    
    pStatement = connection.prepareStatement(sql);
    pStatement.setString(1, currentTime);
    
    pStatement.execute();
    直接文字列スティッチングを使うとエラーが発生します.
    締め括りをつける
    やはり思い切って試してみます.