假設我們在資料庫中已有一個名為 MyData 的表,其描述如下。
+---------+--------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +---------+--------------+------+-----+---------+-------+ | Name | varchar(255) | YES | | NULL | | | Article | longtext | YES | | NULL | | +---------+--------------+------+-----+---------+-------+
如果需要使用 JDBC 程式將值 int 插入到 clob 資料類型中,則需要使用讀取檔案內容並將其設定為資料庫行的方法。 ReadyStatement 介面提供了這樣的方法。
void setCharacterStream(int parameterIndex, Reader reader) 方法將 reader 物件的內容設定為給定索引處的參數的值。此方法的其他變體是:
void setCharacterStream(intparameterIndex, Reader reader, int length)
#void setCharacterStream(intparameterIndex, Reader reader , long length)
void setClob(intparameterIndex, Clob x) 方法設定給定的java .sql.Clob 物件作為給定索引處參數的值。此方法的其他變體是:
void setClob(intparameterIndex, 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://localhost/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工作台查看記錄中的clob值,您可以看到插入的文字數據,如下所示:
以上是編寫一個 JDBC 範例來將 Clob 資料類型的值插入表中?的詳細內容。更多資訊請關注PHP中文網其他相關文章!