如何使用 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 表。在这里,我们使用 PreparedStatement 的 setURL() 方法将 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)