如何使用 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.com/java');
insert into tutorials_data (tutorial_title, tutorial_author, submission_date, tutorial_link) values('JFreeCharts', 'Satish Kumar', DATE('2019-05-01 '), 'https://tutorialspoint.com/jfreechart');
insert into tutorials_data (tutorial_title, tutorial_author, submission_date, tutorial_link) values('Android', 'Sai Ram', DATE('2019-03-01'), 'https://tutorialspoint.com/android');
insert into tutorials_data (tutorial_title, tutorial_author, submission_date,tutorial_link) values('Cassandra', 'Pruthvi Raj', DATE('2019-04-06'), 'https://tutorialspoint.com/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.com/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.com/java        |
| 2           | JFreeCharts    | Satish Kumar    | 2019-05-01      | https://tutorialspoint.com/jfreechart |
| 3           | Android        | Sai Ram         | 2019-03-01      | https://tutorialspoint.com/android    |
| 4           | Cassandra      | Pruthvi Raj     | 2019-04-06      | https://tutorialspoint.com/cassandra  |
| 5           | JavaFX         | Sarmista sharma | 2018-05-01      | https://tutorialspoint.com/javafx     |
+-------------+----------------+-----------------+-----------------+-------------------------------------------+
7 rows in set (0.00 sec)

更新于: 2019-07-30

225 次浏览

启动您的 职业生涯

通过完成课程获得认证

开始学习
广告

© . All rights reserved.