如何使用 JDBC 将 DATALINK 对象插入表中?

jdbcobject oriented programmingprogramming

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'), 'http://www.tutorialspoint.com/java');
insert into tutorials_data (tutorial_title, tutorial_author, submission_date, tutorial_link) values('JFreeCharts', 'Satish Kumar', DATE('2019-05-01 '), 'https://www.tutorialspoint.com/jfreechart');
insert into tutorials_data (tutorial_title, tutorial_author, submission_date, tutorial_link) values('Android', 'Sai Ram', DATE('2019-03-01'), 'https://www.tutorialspoint.com/android');
insert into tutorials_data (tutorial_title, tutorial_author, submission_date,tutorial_link) values('Cassandra', 'Pruthvi Raj', DATE('2019-04-06'), 'https://www.tutorialspoint.com/cassandra');

以下 JDBC 程序将新记录插入 tutorials_data 表。在这里,我们使用 PreparedStatementsetURL() 方法将 DATALING 对象插入 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 {
      //注册驱动程序
      DriverManager.registerDriver(new com.mysql.jdbc.Driver());
      //获取连接
      String mysqlUrl = "jdbc:mysql://localhost/sampledatabase";
      Connection con = DriverManager.getConnection(mysqlUrl, "root", "password");
      System.out.println("连接已建立......");
      //查询以将数据插入 tutorials_data 表
      String query = "insert into tutorials_data ("
          + "tutorial_title, "
          + "tutorial_author, "
          + "submission_date, "
          + "tutorial_link) values(?, ?, ?, ? )";
      //创建 preparedStatement 对象
      PreparationStatement pstmt = con.prepareStatement(query);
      pstmt.setString(1, "JavaFX");
      pstmt.setString(2, "Sarmista sharma");
      pstmt.setDate(3, new Date(1525169078000L));
      //设置 URL 值
      pstmt.setURL(4, new URL("https://www.tutorialspoint.com/javafx"));
      pstmt.execute();
      System.out.println("Record inserted........");
   }
}

输出

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

Verification

如果您获取 tutorials_data 表的内容,您会观察到新插入的记录为 −

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

相关文章