jdbc insert 一个clob类型

        数据库在当今的应用越来越广泛了,同样伴随着领域的广泛,存储的内容也不在是只有数值、字符、boolean几种类型,而是越来越多样化。

 

以下是一个很简单的方法,插入一条含有clob类型字段的数据

 

 

public boolean addUser(){

  String sql = "";
  Connection conn = null;
  Statement stmt = null;
  ResultSet rs = null;

  try {

 

       conn = this.getConnection();
       stmt = conn.createStatement();

 

        //关键的一条,oracle自带的一个empty_clob()空值函数

        String insertSql = "insert into user (id,profile) values('1',EMPTY_CLOB());

 

        //查出要插入的语句进行更新

        String strSelectSql="select profile from user where id='1'  FOR UPDATE";

 

         //先改为手动提交事务

        conn.setAutoCommit(false);
        conn.commit();
        stmt.execute(insertSql);

 

   //得出要更新的数据

   rs = stmt.executeQuery(strSelectSql);


   if (rs.next()) {
    CLOB clob1 = (CLOB) rs.getObject("Barriercontent");
    WriteClob(clob1,"您要插入的profile内容到clob类型中,在这里写!");
   }
   rs.close();
   conn.commit();
   conn.setAutoCommit(true);

 

catch (Exception e) {
    log.error("error/n" + e.getMessage());
    return false;
  } finally {
    if (null != conn && !conn.isClosed()) {
     conn.close();
    }
   if (stmt != null) {
    stmt.close();
   }
   if (rs != null) {
    rs.close();
   }
  }
  return true;
 }

      

//照搬一个流输入的方法

 @SuppressWarnings("deprecation")
 public void WriteClob(CLOB clob, String Strwrite) {

  try {
   Writer wr = clob.getCharacterOutputStream();
   wr.write(Strwrite);
   wr.flush();
   wr.close();
  } catch (SQLException e) {
   e.printStackTrace();
  } catch (IOException e) {
   e.printStackTrace();
  }
 }

 

大功告成!很简单吧,其实就是先插入一个空的empty_clob()函数,再用流写入进行更新而已。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值