您可以使用日期数据类型在SQL中插入日期值,java.sql.Date类映射到SQL DATE类型。
PreparedStatement接口提供了一个名为setDate()的方法。使用它您可以将日期插入表中。此方法接受两个参数 -
一个整数,表示我们需要设置日期值的占位符(?)的参数索引。
一个表示要传递的日期值的 Date 对象。 java.sql.Date 类的构造函数接受一个 long 类型的变量,表示距纪元(标准基准时间,即 1970 年 1 月 1 日,00:00:00 GMT)的毫秒数。
假设我们在 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......"); } }
Connection established...... Records inserted......
如果您在 MySQL 数据库中验证表格,您可以观察表格的内容如下:
rree以上是JDBC中如何处理日期?的详细内容。更多信息请关注PHP中文网其他相关文章!