在oracle中插入CLOB字段

import java.sql.*;
import java.io.*;

public class TestClob{
public void TestClob(){}
public static void main(String args[]){
try{
Class.forName("oracle.jdbc.driver.OracleDriver");
Connectionconn=DriverManager.getConnection ("jdbc:oracle:thin:@localhost:1521:ora32","tjpt","tjpt");

conn.setAutoCommit(false);
//第一步:插入一个空的CLOB
String sql1="insert into news(content,id) values (EMPTY_CLOB(),'1')";
PreparedStatement ps1=conn.prepareStatement(sql1,new String[]{"id"});
ps1.executeUpdate();
ResultSet rs1 = ps.getGeneratedKeys();
rs1.next();
int id = rs1.getInt(1);
ps1.close();

//第二步:取出该CLOB
String sql2="select content from news where id=? for update";
PreparedStatement ps2=conn.prepareStatement(sql2);

ps2.setInt(1, id);
ResultSet rs2=ps2.executeQuery();
while (rs2.next()){
  CLOB clob = (CLOB) rs2.getClob(1);
     clob.truncate(0l);
     clob.setString(1,bean.getNcontent());

}
conn.commit();
}
catch(Exception e){e.printStackTrace();}
}

}

既然插入进去了,那我们还得要检验一下:插进去的是不是你想插进去的内容?以下就是读取CLOB的代码:

import java.sql.*;
import java.io.*;
public class ReadClob{
public void ReadClob(){}
public static void main(String args[]){
try{
Class.forName("oracle.jdbc.driver.OracleDriver");
Connection conn=DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:ora32","tjpt","tjpt"); String sql1="select content from news";
PreparedStatement ps1=conn.prepareStatement(sql1);
ResultSet rs1=ps1.executeQuery();
while (rs1.next()){
oracle.sql.CLOB clob=(oracle.sql.CLOB)rs1.getClob(1);
BufferedReader in=new BufferedReader(clob.getCharacterStream());
StringWriter out=new StringWriter();
int c;
while((c=in.read())!=-1){
out.write(c);
}
String content=out.toString();
System.out.println (content);//输出CLOB内容
}
}
catch(Exception e){e.printStackTrace();}
}
}

 

下面是自己写的一个简单的例子:
conn=DaoTools.getConn();
  String sql1 = "insert into hmh_test_table(userid,username,userdes) values (300,'rrr',EMPTY_CLOB())";
  try {
   conn.setAutoCommit(false);
   PreparedStatement ps= conn.prepareStatement(sql1);
   int i=ps.executeUpdate();
   ps.close();
   String sql2="select userdes from hmh_test_table where userid=? for update";
   PreparedStatement ps2=conn.prepareStatement(sql2);
   ps2.setInt(1, 300);
   ResultSet rs=ps2.executeQuery();
   while (rs.next()){
    CLOB clob =(CLOB)rs.getClob(1);
    Writer wr = clob.getCharacterOutputStream();
    wr.write("clob数据哦!!");
    wr.flush();
    wr.close();
   }
   rs.close();
   ps2.close();
   conn.commit();
  } catch (Exception e) {
   e.printStackTrace();

}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值