Rumah >pangkalan data >tutorial mysql >Bagaimanakah Java dan MySQL Mengendalikan Masa dan Cap Masa?

Bagaimanakah Java dan MySQL Mengendalikan Masa dan Cap Masa?

Barbara Streisand
Barbara Streisandasal
2024-12-10 00:53:11316semak imbas

How Do Java and MySQL Handle Datetimes and Timestamps?

Berinteraksi dengan Datetimes MySQL dan Cap Masa dalam Java

Apabila bekerja dengan kedua-dua tarikh dan cap masa dalam pangkalan data MySQL daripada aplikasi Java, ia adalah penting untuk memahami cara jenis data ini diwakili dan dikendalikan dalam kedua-duanya persekitaran.

Perwakilan Java

Di Java, tarikh biasanya diwakili menggunakan kelas java.util.Date, yang merangkum kedua-dua maklumat tarikh dan masa dengan ketepatan milisaat.

Perwakilan MySQL

Dalam MySQL, terdapat tiga jenis data tarikh dan masa utama:

  • TARIKH: Hanya menyimpan bahagian tarikh (tahun, bulan dan hari).
  • MASA: Hanya menyimpan bahagian masa (jam, minit dan saat).
  • TIMESTAMP: Menyimpan kedua-dua tarikh dan masa bahagian.

Interaksi Antara Java dan MySQL

Apabila mendapatkan semula nilai TIMESTAMP daripada MySQL ke dalam Java, hasilnya disimpan dalam objek java.sql.Timestamp , yang merupakan subkelas java.util.Date. Apabila memasukkan tarikh ke dalam MySQL menggunakan PreparedStatement, kaedah setTimestamp() hendaklah digunakan untuk menetapkan nilai parameter sebagai objek Timestamp.

Contoh Kod

Untuk menunjukkan bagaimana untuk berinteraksi dengan masa MySQL dan cap masa dari Java, pertimbangkan kod berikut:

import java.sql.*;

public class DatetimeExample {

    public static void main(String[] args) throws SQLException {
        // Establish a connection to the MySQL database
        Connection connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/database_name", "username", "password");

        // Get a timestamp object representing the current date and time
        Timestamp timestamp = new Timestamp(System.currentTimeMillis());

        // Create a prepared statement to insert data into the database
        PreparedStatement preparedStatement = connection.prepareStatement("INSERT INTO events (event_date, event_time) VALUES (?, ?)");

        // Set the timestamp value as the first parameter
        preparedStatement.setTimestamp(1, timestamp);

        // Set the second parameter as the time part of the timestamp
        preparedStatement.setTime(2, new Time(timestamp.getTime()));

        // Execute the insert statement
        preparedStatement.executeUpdate();

        // Retrieve the inserted data using a result set
        ResultSet resultSet = preparedStatement.executeQuery("SELECT event_date, event_time FROM events WHERE event_id = (SELECT LAST_INSERT_ID())");

        // Get the timestamp from the result set
        Timestamp retrievedTimestamp = resultSet.getTimestamp("event_date");

        // Convert the timestamp to a Java date
        Date retrievedDate = new Date(retrievedTimestamp.getTime());

        // Print the retrieved date and time
        System.out.println("Retrieved date: " + retrievedDate);
        System.out.println("Retrieved time: " + new Time(retrievedTimestamp.getTime()));
    }
}

Dalam contoh ini, kami menunjukkan cara menggunakan objek Timestamp untuk memasukkan kedua-dua bahagian tarikh dan masa ke dalam pangkalan data MySQL dan mendapatkannya sebagai objek Tarikh dan Masa dalam Java.

Atas ialah kandungan terperinci Bagaimanakah Java dan MySQL Mengendalikan Masa dan Cap Masa?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn