如何在 JDBC 中將日期值插入表中?


你可以使用 date 資料型別在 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:///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 資料庫中的表,你可以觀察到表的內容如下 -

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)

更新於: 2019 年 7 月 30 日

7K 次瀏覽

開啟你的 職業生涯

透過完成課程獲得認證

開始
廣告