Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Como obter um timestamp em Java e armazenar no banco de dados MySQL?


Uma maneira muito melhor de lidar com isso é no lado do banco de dados. Ao criar a tabela, especifique o valor padrão para o TIMESTAMP coluna como
Postagens
CREATE TABLE posts (
    id INTEGER AUTO_INCREMENT PRIMARY KEY,
    title VARCHAR(50) NOT NULL,
    creation_date TIMESTAMP DEFAULT NOW()
);

O exemplo mostra um CREATE TABLE para MySQL, mas o conceito é o mesmo. Ao inserir sua linha, apenas não especifique nenhum valor para a coluna creation_date e o banco de dados irá preenchê-lo automaticamente para você.

Dada a mesma tabela, se você deseja inserir a data do Java, seu código deve se parecer com
// 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();
}

Observe que você também precisaria abrir um banco de dados Connection (o conn objeto acima) e feche-o quando terminar. Se você é novo na API JDBC, dê uma olhada em Noções básicas de JDBC primeiro.