sql >> Database teknologi >  >> RDS >> Mysql

Hvordan får man et tidsstempel i Java og gemmer i MySQL-databasen?

En meget bedre måde at håndtere dette på er ved din databaseside. Angiv standardværdien for TIMESTAMP, mens du opretter tabellen kolonne som

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

Eksemplet viser en CREATE TABLE for MySQL, men konceptet er det samme. Mens du indsætter din række, skal du bare ikke angive nogen værdi for kolonnen creation_date og databasen vil automatisk udfylde den for dig.

Givet den samme tabel, hvis du vil indsætte datoen fra Java, skal din kode se ud som

// 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();
}

Bemærk, at du også skal åbne en DB Connection (conn objekt ovenfor) og luk den, når du er færdig med den. Hvis du er ny til JDBC API, så tag et kig på JDBC Basics først.




  1. connection.select_value returnerer kun strenge i postgres med pg gem

  2. PostgreSQL drop-begrænsning med ukendt navn

  3. Begræns størrelsen af ​​en samling i JPA

  4. Hvad er standard begrænsningsnavnet i SQL Server?