Computer >> Máy Tính >  >> Lập trình >> MySQL

Làm thế nào để xử lý ngày tháng trong JDBC?

Bạn có thể chèn các giá trị ngày trong SQL bằng cách sử dụng kiểu dữ liệu ngày, lớp java.sql.Date ánh xạ tới kiểu SQL DATE.

Câu lệnh chuẩn bị giao diện cung cấp một phương thức có tên setDate () . Sử dụng điều này, bạn có thể chèn ngày vào bảng. Phương thức này chấp nhận hai tham số -

  • Một số nguyên đại diện cho chỉ số tham số của trình giữ chỗ (?) Mà chúng ta cần đặt giá trị ngày.

  • một đối tượng Ngày đại diện cho giá trị ngày sẽ được chuyển. Hàm tạo của lớp java.sql.Date chấp nhận một biến kiểu dài đại diện cho số mili giây tính từ kỷ nguyên (thời gian gốc tiêu chuẩn tức là ngày 1 tháng 1 năm 1970, 00:00:00 GMT).

Ví dụ

Giả sử chúng ta đã tạo một bảng có tên Emp trong cơ sở dữ liệu MySQL với mô tả sau -

+----------+--------------+------+-----+---------+-------+
| Field    | Type         | Null | Key | Default | Extra |
+----------+--------------+------+-----+---------+-------+
| Name     | varchar(255) | YES  |     | NULL    |       |
| DOB      | date         | YES  |     | NULL    |       |
| Location | varchar(255) | YES  |     | NULL    |       |
+----------+--------------+------+-----+---------+-------+

Chương trình JDBC sau sẽ chèn các bản ghi vào bảng này -

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.Statement;
import java.sql.Date;
public class InsertingDate {
   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 Emp(Name, DOB, Location) VALUES (?, ?, ?)";
      PreparedStatement pstmt = con.prepareStatement(query);
      pstmt.setString(1, "Amit"); pstmt.setDate(2, new Date(622790105000L));
      pstmt.setString(3, "Hyderabad");
      pstmt.execute();
      pstmt.setString(1, "Sumith"); pstmt.setDate(2, new Date(620611200000L));
      pstmt.setString(3, "Vishakhapatnam");
      pstmt.execute();
      pstmt.setString(1, "Sudha");
      pstmt.setDate(2, new Date(336614400000L));
      pstmt.setString(3, "Vijayawada");
      pstmt.execute();
      System.out.println("Records inserted......");
   }
}

Đầu ra

Connection established......
Records inserted......

Nếu bạn xác minh bảng trong cơ sở dữ liệu MySQL, bạn có thể quan sát nội dung của bảng dưới dạng -

mysql> select * from Emp;
+--------+------------+----------------+
| Name   | DOB        | Location       |
+--------+------------+----------------+
| Amit   | 1989-09-26 | Hyderabad      |
| Sumith | 2019-03-19 | Vishakhapatnam |
| Sudha  | 2019-03-19 | Vijayawada     |
+--------+------------+----------------+
3 rows in set (0.00 sec)