如何使用 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)
廣告