運用Java如何存取Oracle中的CLOB類型字段
2024-08-29 13:35:50
供稿:網友
 
             
  運用java如何存取Oracle中的CLOB類型字段
              
import java.sql.*; 
import java.io.*; 
import oracle.jdbc.driver.OracleResultSet; 
import oracle.sql.CLOB; 
                                                                                            public class TestOracleClob implements Serializable{ 
public static void main(String[] args) 
{ 
//create table test (id integer,content clob); 
System.out.PRintln("-------------------insert -----------------"); 
try{ 
Class.forName("oracle.jdbc.driver.OracleDriver"); 
Connection con=DriverManager.getConnection("jdbc:oracle:thin:@fangm:1521:LICSFC","SFC","SFC"); 
//con.setAutoCommit(false); 
//Ok 1 
String sql="insert into test values(1,empty_clob())"; 
Statement stmt=con.createStatement(); 
ResultSet rs=stmt.executeQuery(sql); 
String sqll="select content from test where id=1 for update"; 
ResultSet rss=stmt.executeQuery(sqll); 
if(rss.next()){ 
CLOB clob = ((OracleResultSet)rss).getCLOB(1); 
clob.putString(1,"ddddddddddddddddddddddddddddddddddd"); 
sql="update test set content=? where id=1"; 
PreparedStatement pstmt=con.prepareStatement(sql); 
pstmt.setClob(1,clob); 
pstmt.executeUpdate(); 
pstmt.close(); 
} 
//Ok 2 
//String sql1="insert into test values(2,empty_clob())"; 
//ResultSet rs3=stmt.executeQuery(sql1); 
String sql12="insert into test values(?,?)"; 
PreparedStatement pstmt1=con.prepareStatement(sql12); 
pstmt1.setInt(1,2); 
pstmt1.setClob(2,oracle.sql.CLOB.empty_lob()); 
pstmt1.executeUpdate(); 
String sqll2="select content from test where id=2 for update"; 
ResultSet rss2=stmt.executeQuery(sqll2); 
if(rss2.next()){ 
CLOB clob = ((OracleResultSet)rss2).getCLOB(1); 
clob.putString(1,"affffffffffdfdfdfdddddddfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
fffffffffffffffffffffffffdddfff"); 
String sql1="update test set content=? where id=2"; 
PreparedStatement pstmt=con.prepareStatement(sql1); 
pstmt.setClob(1,clob); 
pstmt.executeUpdate(); 
pstmt.close(); 
} 
//con.commit(); 
rss.close(); 
rss2.close(); 
pstmt1.close(); 
rs.close(); 
stmt.close(); 
con.close(); 
System.out.println("-------------insert ok-------------"); 
}catch(Exception e){ 
System.out.println("insert:"+e); 
} 
System.out.println("-------------------query -----------------"); 
                         try{ 
String content=""; 
Class.forName("oracle.jdbc.driver.OracleDriver"); 
Connection con=DriverManager.getConnection("jdbc:oracle:thin:@fangm:1521:LICSFC","SFC","SFC"); 
Statement stmt=con.createStatement(); 
String sql="select content from test where id=1"; 
ResultSet rs=stmt.executeQuery(sql); 
if(rs.next()){ 
CLOB clob = ((OracleResultSet)rs).getCLOB(1); 
if(clob!=null){ 
Reader is=clob.getCharacterStream(); 
BufferedReader br=new BufferedReader(is); 
String s=br.readLine(); 
while(s!=null){ 
content+=s+","; 
s=br.readLine(); 
} 
} 
} 
rs.close(); 
stmt.close(); 
con.close(); 
System.out.println("clob:"+content); 
System.out.println("-------------query ok-------------"); 
}catch(Exception ee){ 
System.out.println("query:"+ee); 
} 
} 
}