我们如何在 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("记录插入......"); } }输出结果
连接已建立...... 记录插入......