如何在 JDBC 中设置表中的时间?


可以使用 time 数据类型在 SQL 中插入时间值,java.sql.Time 类映射到 SQL Time 类型。

PreparedStatement 接口提供了一个名为 setTime() 的方法。使用它可以将时间插入表中。此方法接受两个参数 -

  • 表示参数索引的整数,占位符 (?) 表示我们需要设置日期值的位置。

  • 表示要传递的时间值的 Time 对象。java.sql.Time 类的构造函数接受 long 类型变量,该变量表示距纪元(标准基准时间,即格林威治标准时间 1970 年 1 月 1 日 00:00:00)的毫秒数。

示例

假设我们在 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 {
      //Getting the connection
      String mysqlUrl = "jdbc:mysql://127.0.0.1/sampleDB";
      Connection con = DriverManager.getConnection(mysqlUrl, "root", "password");
      System.out.println("Connection established......");
      //Inserting values to a table
      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("Records inserted......");
   }
}

输出

Connection established......
Records inserted......

更新于:30-Jul-2019

249 次浏览

开启您的职业生涯

通过完成课程获得认证

开始
广告