sql >> Databáze >  >> RDS >> Mysql

Jak získat časové razítko v Javě a uložit do databáze MySQL?

Mnohem lepší způsob, jak to zvládnout, je na straně databáze. Při vytváření tabulky zadejte výchozí hodnotu pro TIMESTAMP sloupec jako

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

Příklad ukazuje CREATE TABLE pro MySQL, ale koncept je stejný. Při vkládání řádku nezadávejte žádnou hodnotu pro sloupec creation_date a databáze ji automaticky naplní za vás.

Vzhledem ke stejné tabulce, pokud chcete vložit datum z Javy, váš kód by měl vypadat takto

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

Všimněte si, že byste také museli otevřít DB Connection (conn objekt nahoře) a po dokončení jej zavřete. Pokud s JDBC API začínáte, podívejte se na Základy JDBC první.




  1. Obnovení tabulkového prostoru USERS nefunguje. Zálohování Oracle

  2. Použijte v('APP_USER') jako výchozí hodnotu pro sloupec v Oracle Apex

  3. mysql vrátí výsledky z aktualizace

  4. PDO fetchAll seskupuje páry klíč–hodnota do pole asociace