sql >> データベース >  >> RDS >> Mysql

Javaでタイムスタンプを取得してMySQLデータベースに保存するにはどうすればよいですか?

    これを処理するためのはるかに優れた方法は、データベース側です。テーブルの作成中に、TIMESTAMPのデフォルト値を指定します 列として

    CREATE TABLE posts (
        id INTEGER AUTO_INCREMENT PRIMARY KEY,
        title VARCHAR(50) NOT NULL,
        creation_date TIMESTAMP DEFAULT NOW()
    );
    

    この例は、CREATE TABLEを示しています。 MySQLの場合ですが、概念は同じです。行を挿入するときは、列creation_dateに値を指定しないでください。 データベースが自動的にデータを入力します。

    同じテーブルで、Javaから日付を挿入する場合、コードは次のようになります

    // Get current time
    Timestamp now = new Timestamp(new Date().getTime());
    
    try {
        // Prepare INSERT through Connection
        PreparedStatement stmt = conn.prepareStatement(
            "INSERT INTO posts (title, creation_date) VALUES (?, ?)");
    
        // Bind values
        stmt.setString(1, title);
        stmt.setTimestamp(2, now);
    
        // Insert
        stmt.executeUpdate();
    } catch (SQLException e) {
        e.printStackTrace();
    }
    

    DBConnectionも開く必要があることに注意してください (conn 上記のオブジェクト)、それが終わったら閉じます。 JDBC APIを初めて使用する場合は、JDBCの基本をご覧ください。 最初。




    1. 一言で言えば軽い

    2. OracleSQLRegexp_replaceマッチング

    3. ストアドプロシージャでカーソルを使用して行をループするMySQL

    4. djangoでのsqliteからpostgresqlへの移行