MySQL 如何在JDBC中处理日期
您可以使用日期数据类型在SQL中插入日期值,java.sql.Date类映射到SQL DATE类型。
PreparedStatement
接口提供了一个名为
setDate()
的方法。通过这个方法,您可以将日期插入到表中。该方法接受两个参数:
- 表示占位符(?)的参数索引的整数值,需要设置日期值。
-
表示要传递的日期值的Date对象。java.sql.Date类的构造函数接受一个长整型的变量,表示自纪元(标准基准时间即格林尼治标准时间1970年1月1日00:00:00)以来的毫秒数。
阅读更多:MySQL 教程
示例
假设我们在MySQL数据库中创建了一个名为Emp的表,其描述如下-“⟪-的
+----------+--------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+----------+--------------+------+-----+---------+-------+
| Name | varchar(255) | YES | | NULL | |
| DOB | date | YES | | NULL | |
| Location | varchar(255) | YES | | NULL | |
+----------+--------------+------+-----+---------+-------+
以下JDBC程序将记录插入该表中-
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......");
}
}
输出
连接已创建......
记录已插入......
如果您在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)
极客教程