oracle java clob存储_Java 存储和读取 oracle CLOB 类型字段

本文档展示了如何使用Java与Oracle数据库进行交互,存储和读取CLOB类型字段。首先,通过建立数据库连接,使用PreparedStatement插入CLOB数据。接着,演示了从CLOB字段中读取数据并转换为字符串的方法。最后,提供了完整示例代码供参考。
摘要由CSDN通过智能技术生成

packageoracle.clob;importjava.io.BufferedReader;importjava.io.File;importjava.io.FileReader;importjava.io.IOException;importjava.io.Reader;importjava.io.StringReader;importjava.sql.Connection;importjava.sql.DriverManager;importjava.sql.PreparedStatement;importjava.sql.ResultSet;importjava.sql.SQLException;importoracle.jdbc.driver.OracleDriver;importoracle.sql.CLOB;publicclassClobTest {

String url="jdbc:oracle:thin:@192.168.2.157:1521:orcl";

String user="xj";

String pwd="xj";

String text="这是要插入到CLOB里面的数据";/***@throwsClassNotFoundException

*@throwsSQLException

*             数据库里已经建好表CLOB_TEST(ID NUMBER,STR CLOB);*/privatevoidclobImport()throwsClassNotFoundException, SQLException {//TODO Auto-generated method stubDriverManager.registerDriver(newOracleDriver());

Connection conn=DriverManager.getConnection(url, user, pwd);//得到连接对象String sql="insert into clob_test(id,str) values ('1',?)";//要执行的SQL语句PreparedStatement stmt=conn.prepareStatement(sql);//加载SQL语句//PreparedStatement支持SQL带有问号?,可以动态替换?的内容。Reader clobReader=newStringReader(text);//将 text转成流形式stmt.setCharacterStream(1, clobReader, text.length());//替换sql语句中的?intnum=stmt.executeUpdate();//执行SQLif(num>0) {

System.out.println("ok");

}else{

System.out.println("NO");

}

stmt.close();

conn.close();

}privatevoidclobExport()throwsClassNotFoundException, SQLException,

IOException {//TODO Auto-generated method stubCLOB clob=null;

String sql="select * from clob_test where id=1";

DriverManager.registerDriver(newOracleDriver());

Connection conn=DriverManager.getConnection(url, user, pwd);//得到连接对象PreparedStatement stmt=conn.prepareStatement(sql);

ResultSet rs=stmt.executeQuery();

String id="";

String content="";if(rs.next()) {

id=rs.getString("id");//获得IDclob=(oracle.sql.CLOB) rs.getClob("str");//获得CLOB字段str//注释: 用 rs.getString("str")无法得到 数据 ,返回的 是 NULL;content=ClobToString(clob);

}

stmt.close();

conn.close();//输出结果System.out.println(id);

System.out.println(content);

}//将字CLOB转成STRING类型publicString ClobToString(CLOB clob)throwsSQLException, IOException {

String reString="";

Reader is=clob.getCharacterStream();//得到流BufferedReader br=newBufferedReader(is);

String s=br.readLine();

StringBuffer sb=newStringBuffer();while(s!=null) {//执行循环将字符串全部取出付值给StringBuffer由StringBuffer转成STRINGsb.append(s);

s=br.readLine();

}

reString=sb.toString();returnreString;

}/***@paramargs

*@throwsIOException

*@throwsSQLException

*@throwsClassNotFoundException*///TODO Auto-generated method stubpublicstaticvoidmain(String[] args)throwsIOException,

ClassNotFoundException, SQLException {//TODO Auto-generated method stubClobTest clobtest=newClobTest();//read fileFileReader _frd=newFileReader(newFile("D:\\DOS.txt"));

BufferedReader _brd=newBufferedReader(_frd);

String _rs=_brd.readLine();

StringBuffer _input=newStringBuffer();while(_rs!=null) {

_input.append(_rs);

_rs=_brd.readLine();

}//System.out.println(_input.toString());//输入测试clobtest.text=_input.toString();

clobtest.clobImport();//输出测试//clobtest.clobExport();}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值