編寫一個JDBC示例,用於將CLOB資料型別的值插入表中?
假設我們已經在資料庫中擁有一個名為MyData的表,其描述如下。
+---------+--------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +---------+--------------+------+-----+---------+-------+ | Name | varchar(255) | YES | | NULL | | | Article | longtext | YES | | NULL | | +---------+--------------+------+-----+---------+-------+
如果您需要使用JDBC程式將值插入到clob資料型別中,則需要使用讀取檔案內容並將其設定為資料庫行的方法。PreparedStatement介面提供了此類方法。
**void setCharacterStream(int parameterIndex, Reader reader)** 方法將reader物件的內容設定為給定索引處引數的值。此方法的其他變體是
void setCharacterStream(int parameterIndex, Reader reader, int length)
void setCharacterStream(int parameterIndex, Reader reader, long length)
**void setClob(int parameterIndex, Clob x)** 方法將給定的java.sql.Clob物件設定為給定索引處引數的值。此方法的其他變體是
void setClob(int parameterIndex, Reader reader)
void setClob(int parameterIndex, Reader reader, long length)
您可以使用這些方法中的任何一種將值設定為Clob資料型別。
示例
以下示例使用setClob()方法將值設定為Clob資料型別。
import java.io.FileReader;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
public class InsertingValueInClob {
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:///sampleDB";
Connection con = DriverManager.getConnection(mysqlUrl, "root", "password");
System.out.println("Connection established......");
//Inserting values
String query = "INSERT INTO MyData(Name, Article ) VALUES (?, ?)";
PreparedStatement pstmt = con.prepareStatement(query);
pstmt.setString(1, "JavaFX");
FileReader reader = new FileReader("E:\images\javafx.txt");
pstmt.setClob(2, reader);
pstmt.execute();
System.out.println("Data inserted");
}
}輸出
Connection established...... Table Created...... Contents of the table are: JavaFX E:\images\MyData_clob_output1.txt
如果您嘗試使用MySQL Workbench檢視記錄中的clob值,則可以看到如下所示的插入文字資料

廣告
資料結構
網路
關係資料庫管理系統(RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP