Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> MySQL

Cách xử lý date trong JDBC?


Bạn có thể chèn giá trị date trong SQL dùng kiểu date, lớp java.sql.Date ánh xạ với kiểu SQL DATE.

Interface PreparedStatement cung cấp phương thức setDate(). Dùng để chèn date vào bảng. Phương thức nhận hai tham số:

  • Số nguyên đại diện cho chỉ số tham số placeholder (?) cần thiết lập date.

  • Đối tượng Date đại diện cho giá trị date. Constructor java.sql.Date nhận biến long đại diện cho mili-giây từ epoch (1/1/1970 00:00:00 GMT).

Ví dụ

Giả sử bảng Emp trong MySQL:

+----------+--------------+------+-----+---------+-------+ 
| 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 chèn bản ghi:

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 { 
        // Lấy kết nối 
        String mysqlUrl = "jdbc:mysql://localhost/sampleDB"; 
        Connection con = DriverManager.getConnection(mysqlUrl, "root", "password"); 
        System.out.println("Kết nối thành công......"); 
        // Chèn giá trị 
        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("Bản ghi đã chèn......"); 
    } 
}

Kết quả

Kết nối thành công...... 
Bản ghi đã chèn......

Kiểm tra bảng trong MySQL:

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)