This section describes how to insert CLOB values with the PreparedStatement.setString() method.
Another way to insert a character string into a CLOB column is to create a PreparedStatement object and use the setString() method.
See the sample program below:
/**
* OracleClobSetString.java
* Copyright (c) 2007 by Dr. Herong Yang. All rights reserved.
*/
import java.sql.*;
public class OracleClobSetString {
public static void main(String [] args) {
Connection con = null;
try {
oracle.jdbc.pool.OracleDataSource ds
= new oracle.jdbc.pool.OracleDataSource();
ds.setDriverType("thin");
ds.setServerName("localhost");
ds.setPortNumber(1521);
ds.setDatabaseName("XE");
ds.setUser("Herong");
ds.setPassword("TopSecret");
con = ds.getConnection();
// Deleting the record for re-testing
String subject = "Test of the setString() method";
Statement sta = con.createStatement();
sta.executeUpdate("DELETE FROM Article WHERE Subject = '"
+subject+"'");
// Inserting CLOB value with a PreparedStatement
PreparedStatement ps = con.prepareStatement(
"INSERT INTO Article (ID, Subject, Body) VALUES (2, ?,?)");
ps.setString(1, subject);
ps.setString(2, "He is wonderful and strange and who knows"
+" how old he is, he thought. Never have I had such"
+" a strong fish nor one who acted so strangely..."
+" He cannot know that it is only one man against him,"
+" nor that it is an old man. But what a great fish"
+" he is and what will he bring in the market"
+" if the flesh is good.");
int count = ps.executeUpdate();
ps.close();
// Retrieving CLOB value with getString()
ResultSet res = sta.executeQuery(
"SELECT * FROM Article WHERE Subject = '"+subject+"'");
res.next();
System.out.println("The inserted record: ");
System.out.println(" Subject = "+res.getString("Subject"));
System.out.println(" Body = "+res.getString("Body"));
res.close();
sta.close();
con.close();
} catch (Exception e) {
System.err.println("Exception: "+e.getMessage());
}
}
}
Compilation and execution of this program is below.
The output confirms that the character string value was correctly inserted
into the CLOB column:
C:\>javac -cp .;\local\lib\ojdbc14.jar OracleClobSetString.java
C:\>java -cp .;\local\lib\ojdbc14.jar OracleClobSetString
The inserted record:
Subject = Test of the setString() method
Body = He is wonderful and strange and who knows how old he is,
he thought. Never have I had such a strong fish nor one who acted
so strangely... He cannot know that it is only one man against him,
nor that it is an old man. But what a great fish he is and what
will he bring in the market if the flesh is good.