运用Java如何存取Oracle中的CLOB类型字段

王朝java/jsp·作者佚名  2006-01-08
宽屏版  字体: |||超大  

这是我几年前写的文章了,一直没有发出来。今天给大家分享。大家从这个例子如手吧。这个例子,存和取都很明白了

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,"affffffffffdfdfdfdddddddffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdddfff");

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);

}

}

}

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
© 2005- 王朝网络 版权所有