You can insert date values in SQL using the date datatype, The java.sql.Date class maps to the SQL DATE type.
The PreparedStatement interface provides a method named setDate(). Using this you can insert date into a table. This method accepts two parameters −
An integer representing the parameter index of the place holder (?) to which we need to set date value.
a Date object representing the date value to be passed. The constructor of java.sql.Date class accepts a variable of long type representing the number of milliseconds from the epoch (standard base time I.e. January 1, 1970, 00:00:00 GMT).
Example
Assume we have created a table named Emp in MySQL database with the following description −
+----------+--------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+----------+--------------+------+-----+---------+-------+
| Name | varchar(255) | YES | | NULL | |
| DOB | date | YES | | NULL | |
| Location | varchar(255) | YES | | NULL | |
+----------+--------------+------+-----+---------+-------+
Following JDBC program inserts records in to this table −
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......");
}
}
Output
Connection established......
Records inserted......
如果你在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)