如何使用 JDBC 將 DATALINK 物件插入表中?


DATALINK 物件表示一個 URL 值,該值引用外部資源(當前資料庫/資料來源之外),可以是檔案、目錄等。

可以使用 **PreparedStatement** 介面的 **setURL()** 方法將 DATALINK 儲存到 SQL 表中。此方法接受一個表示繫結變數索引的整數值和一個 URL 物件,並將給定的 URL 物件插入指定索引中繫結變數所表示的列中。

示例

讓我們使用如下所示的 CREATE 語句在 MySQL 資料庫中建立一個名為 **tutorials_data** 的表:

CREATE TABLE tutorials_data (
   tutorial_id INT PRIMARY KEY AUTO_INCREMENT,
   tutorial_title VARCHAR(100),
   tutorial_author VARCHAR(40),
   submission_date date, tutorial_link VARCHAR(255)
);

現在,我們將使用 INSERT 語句在 tutorials_data 表中插入 4 條記錄:

insert into tutorials_data (tutorial_title, tutorial_author, submission_date, tutorial_link) values('Java', 'Krishna Kasyap', DATE('2019-09-01'), 'https://tutorialspoint.tw/java');
insert into tutorials_data (tutorial_title, tutorial_author, submission_date, tutorial_link) values('JFreeCharts', 'Satish Kumar', DATE('2019-05-01 '), 'https://tutorialspoint.tw/jfreechart');
insert into tutorials_data (tutorial_title, tutorial_author, submission_date, tutorial_link) values('Android', 'Sai Ram', DATE('2019-03-01'), 'https://tutorialspoint.tw/android');
insert into tutorials_data (tutorial_title, tutorial_author, submission_date,tutorial_link) values('Cassandra', 'Pruthvi Raj', DATE('2019-04-06'), 'https://tutorialspoint.tw/cassandra');

以下 JDBC 程式將一條新記錄插入 tutorials_data 表中。在這裡,我們使用 **PreparedStatement** 的 **setURL()** 方法將 DATALINK 物件插入 **tutorials_data** 表的 **tutorial_link** 列中。

import java.sql.Connection;
import java.sql.Date;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.net.URL;
public class StoringDataLinkObjects {
   public static void main(String args[])throws Exception {
      //Registering the Driver
      DriverManager.registerDriver(new com.mysql.jdbc.Driver());
      //Getting the connection
      String mysqlUrl = "jdbc:mysql:///sampledatabase";
      Connection con = DriverManager.getConnection(mysqlUrl, "root", "password");
      System.out.println("Connection established......");
      //Query to insert data into tutorials_data table
      String query = "insert into tutorials_data ("
         + "tutorial_title, "
         + "tutorial_author, "
         + "submission_date, "
         + "tutorial_link) values(?, ?, ?, ? )";
      //Creating the preparedStatement object
      PreparedStatement pstmt = con.prepareStatement(query);
      pstmt.setString(1, "JavaFX");
      pstmt.setString(2, "Sarmista sharma");
      pstmt.setDate(3, new Date(1525169078000L));
      //Setting the URL value
      pstmt.setURL(4, new URL("https://tutorialspoint.tw/javafx"));
      pstmt.execute();
      System.out.println("Record inserted........");
   }
}

輸出

Connection established......
Record inserted........

驗證

如果您獲取 tutorials_data 表的內容,您會看到新插入的記錄如下:

mysql> select * from tutorials_data;
+-------------+----------------+-----------------+-----------------+-------------------------------------------+
| tutorial_id | tutorial_title | tutorial_author | submission_date | tutorial_link                             |
+-------------+----------------+-----------------+-----------------+-------------------------------------------+
| 1           | Java           | Krishna Kasyap  | 2019-09-01      | https://tutorialspoint.tw/java        |
| 2           | JFreeCharts    | Satish Kumar    | 2019-05-01      | https://tutorialspoint.tw/jfreechart |
| 3           | Android        | Sai Ram         | 2019-03-01      | https://tutorialspoint.tw/android    |
| 4           | Cassandra      | Pruthvi Raj     | 2019-04-06      | https://tutorialspoint.tw/cassandra  |
| 5           | JavaFX         | Sarmista sharma | 2018-05-01      | https://tutorialspoint.tw/javafx     |
+-------------+----------------+-----------------+-----------------+-------------------------------------------+
7 rows in set (0.00 sec)

更新於: 2019-07-30

225 次瀏覽

啟動您的 職業生涯

透過完成課程獲得認證

開始學習
廣告