我们如何在 JDBC 中的表中设置时间?
您可以使用时间数据类型在SQL中插入时间值,java.sql.Time类映射到SQL时间类型。
PreparedStatement接口提供了一个名为方法setTime()。使用它,您可以将时间插入表中。此方法接受两个参数-
一个整数,表示我们需要为其设置日期值的占位符(?)的参数索引。
表示要传递的时间值的Time对象。java.sql.Time类的构造函数接受一个long类型的变量,表示距纪元(标准基准时间,即1970年1月1日,00:00:00GMT)的毫秒数。
示例
假设我们在MySQL数据库中创建了一个名为Dispatches的表,描述如下:
+------------------+--------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +------------------+--------------+------+-----+---------+-------+ | Product_Name | varchar(255) | YES | | NULL | | | Date_Of_Dispatch | date | YES | | NULL | | | Time_Of_Dispatch | time | YES | | NULL | | | Location | varchar(255) | YES | | NULL | | +------------------+--------------+------+-----+---------+-------+
以下JDBC程序将记录插入到此表中-
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.Time;
import java.sql.Date;
public class InsertingTime {
public static void main(String args[])throws Exception {
//获取连接
String mysqlUrl = "jdbc:mysql://localhost/sampleDB";
Connection con = DriverManager.getConnection(mysqlUrl, "root", "password");
System.out.println("连接已建立......");
//向表中插入值
String query = "INSERT INTO Dispatches VALUES (?, ?, ?, ?)";
PreparedStatement pstmt = con.prepareStatement(query);
pstmt.setString(1, "KeyBoard"); pstmt.setDate(2, new Date(1567296000000L));
pstmt.setTime(3, new Time(1567296000000L));
pstmt.setString(4, "Hyderabad");
pstmt.execute();
pstmt.setString(1, "Earphones"); pstmt.setDate(2, new Date(1556668800000L));
pstmt.setTime(3, new Time(1556668800000L));
pstmt.setString(4, "Vishakhapatnam");
pstmt.execute();
pstmt.setString(1, "Mouse"); pstmt.setDate(2, new Date(1551398399000L));
pstmt.setTime(3, new Time(1551398399000L));
pstmt.setString(4, "Vijayawada");
pstmt.execute();
System.out.println("记录插入......");
}
}输出结果连接已建立...... 记录插入......