Tags:

Cách đặt ngày giờ hiện tại trong database với JDBC

Kiểu dữ liệu timestamp trong MySQL được dùng để lưu trữ ngày, tháng, năm, giờ, phút, giây. Thông thường chúng ta sử dụng nó để đại diện cho một thời điểm cụ thể. Ví dụ như thời điểm dữ liệu được tạo v.v

Trong JDBC, chúng ta có 2 cách để thời gian hiện tại cho các cột có kiểu dữ liệu là timestamp:

  • Sử dụng thuộc tính CURRENT_TIMESTAMP cung cấp bởi database.
  • Sử dụng getTime() của Calendar class.

Chuẩn bị

Chúng ta cần tạo table các các cột dữ liệu kiểu timestamp trong MySQL database.

CREATE TABLE Sample(Id INT, Current_Time_Stamp TimeStamp);

Ngoài ra chúng ta cũng cần sử dụng JDBC dependency trong project maven hoặc tải file jar tương ứng vào project.

  <dependency>
       <groupId>mysql</groupId>
       <artifactId>mysql-connector-java</artifactId>
       <version>8.0.13</version>
 </dependency>

Ví dụ

Đầu tiên chúng ta sẽ sử dụng CURRENT_TIMESTAMP được cung cấp sẵn bởi database. Đây cũng là cách mình khuyến khích sử dụng vì tính đơn giản và hiệu quả của nó.

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
public class InsertingCurrentTime {
   public static void main(String args[])throws Exception {
      //Getting the connection
      String mysqlUrl = "jdbc:mysql://localhost/sampleDB";
      Connection con = DriverManager.getConnection(mysqlUrl, "root", "password");
      System.out.println("Connection established......");
      //Inserting values to a table

      String query = "INSERT INTO sample(ID, Current_Time_Stamp)
      VALUES (?, CURRENT_TIMESTAMP)";

      PreparedStatement pstmt = con.prepareStatement(query);
      pstmt.setInt(1, 1);
      pstmt.execute();
      System.out.println("Data inserted......");
   }
}

Output

+------+---------------------+
| Id   | Current_Time_Stamp  |
+------+---------------------+
| 1    | 2021-03-23 16:11:17 |
+------+---------------------+

Ngoài ra chúng ta cũng có thể sử dụng Calendar class để lấy thời điểm hiện tại thông qua hàm getTime().

Calendar calendar = Calendar.getInstance();
java.util.Date currentTime = calendar.getTime();

Sau đó sử dụng giá trị này để đặt giá trị cho câu truy vấn SQL thông qua PreparedStatement.

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
public class InsertingCurrentTime {
   public static void main(String args[])throws Exception {
      //Getting the connection
      String mysqlUrl = "jdbc:mysql://localhost/sampleDB";
      Connection con = DriverManager.getConnection(mysqlUrl, "root", "password");
      System.out.println("Connection established......");

      String query = "INSERT INTO sample(ID, Current_Time_Stamp)
      VALUES (?, CURRENT_TIMESTAMP)";
      Calendar calendar = Calendar.getInstance();
      java.util.Date currentTime = calendar.getTime();
      PreparedStatement pstmt = con.prepareStatement(query);
      pstmt.setInt(1, 1);
      pstmt.setTimestamp(2, new Timestamp(time));
      pstmt.execute();
      System.out.println("Data inserted......");
   }
}

Nguồn

https://www.tutorialspoint.com/how-to-insert-current-date-and-time-in-a-database-using-jdbc

0 0 votes
Article Rating
Subscribe
Notify of
guest
0 Comments
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x