1、往数据库中插入一个新的CLOB对象

public   static   void   clobInsert(String   infile)   throws   Exception

{

/*   设定不自动提交   */

boolean   defaultCommit   =   conn.getAutoCommit();

conn.setAutoCommit(false);

try   {

/*   插入一个空的CLOB对象   */

stmt.executeUpdate("INSERT   INTO   TEST_CLOB   VALUES   (’111’,   EMPTY_CLOB())");

/*   查询此CLOB对象并锁定   */

ResultSet   rs   =   stmt.executeQuery("SELECT   CLOBCOL   FROM   TEST_CLOB   WHERE   ID=’111’   FOR   UPDATE");

while   (rs.next())   {

/*   取出此CLOB对象   */

oracle.sql.CLOB   clob   =   (oracle.sql.CLOB)rs.getClob("CLOBCOL");

/*   向CLOB对象中写入数据   */

BufferedWriter   out   =   new   BufferedWriter(clob.getCharacterOutputStream());

BufferedReader   in   =   new   BufferedReader(new   FileReader(infile));

int   c;

while   ((c=in.read())!=-1)   {

out.write(c);

}

in.close();

out.close();

}

/*   正式提交   */

conn.commit();

}   catch   (Exception   ex)   {

/*   出错回滚   */

conn.rollback();

throw   ex;

}

/*   恢复原提交状态   */

conn.setAutoCommit(defaultCommit);

}

2、修改CLOB对象(是在原CLOB对象基础上进行覆盖式的修改)

public   static   void   clobModify(String   infile)   throws   Exception

{

/*   设定不自动提交   */

boolean   defaultCommit   =   conn.getAutoCommit();

conn.setAutoCommit(false);

try   {

/*   查询CLOB对象并锁定   */

ResultSet   rs   =   stmt.executeQuery("SELECT   CLOBCOL   FROM   TEST_CLOB   WHERE   ID=’111’   FOR   UPDATE");

while   (rs.next())   {

/*   获取此CLOB对象   */

oracle.sql.CLOB   clob   =   (oracle.sql.CLOB)rs.getClob("CLOBCOL");

/*   进行覆盖式修改   */

BufferedWriter   out   =   new   BufferedWriter(clob.getCharacterOutputStream());

BufferedReader   in   =   new   BufferedReader(new   FileReader(infile));

int   c;

while   ((c=in.read())!=-1)   {

out.write(c);

}

in.close();

out.close();

}

/*   正式提交   */

conn.commit();

}   catch   (Exception   ex)   {

/*   出错回滚   */

conn.rollback();

throw   ex;

}

/*   恢复原提交状态   */

conn.setAutoCommit(defaultCommit);

}

3、替换CLOB对象(将原CLOB对象清除,换成一个全新的CLOB对象)

public   static   void   clobReplace(String   infile)   throws   Exception

{

/*   设定不自动提交   */

boolean   defaultCommit   =   conn.getAutoCommit();

conn.setAutoCommit(false);

try   {

/*   清空原CLOB对象   */

stmt.executeUpdate("UPDATE   TEST_CLOB   SET   CLOBCOL=EMPTY_CLOB()   WHERE   ID=’111’");

/*   查询CLOB对象并锁定   */

ResultSet   rs   =   stmt.executeQuery("SELECT   CLOBCOL   FROM   TEST_CLOB   WHERE   ID=’111’   FOR   UPDATE");

while   (rs.next())   {

/*   获取此CLOB对象   */

oracle.sql.CLOB   clob   =   (oracle.sql.CLOB)rs.getClob("CLOBCOL");

/*   更新数据   */

BufferedWriter   out   =   new   BufferedWriter(clob.getCharacterOutputStream());

BufferedReader   in   =   new   BufferedReader(new   FileReader(infile));

int   c;

while   ((c=in.read())!=-1)   {

out.write(c);

}

in.close();

out.close();

}

/*   正式提交   */

conn.commit();

}   catch   (Exception   ex)   {

/*   出错回滚   */

conn.rollback();

throw   ex;

}

/*   恢复原提交状态   */

conn.setAutoCommit(defaultCommit);

}

4、CLOB对象读取

public   static   void   clobRead(String   outfile)   throws   Exception

{

/*   设定不自动提交   */

boolean   defaultCommit   =   conn.getAutoCommit();

conn.setAutoCommit(false);

try   {

/*   查询CLOB对象   */

ResultSet   rs   =   stmt.executeQuery("SELECT   *   FROM   TEST_CLOB   WHERE   ID=’111’");

while   (rs.next())   {

/*   获取CLOB对象   */

oracle.sql.CLOB   clob   =   (oracle.sql.CLOB)rs.getClob("CLOBCOL");

/*   以字符形式输出   */

BufferedReader   in   =   new   BufferedReader(clob.getCharacterStream());

BufferedWriter   out   =   new   BufferedWriter(new   FileWriter(outfile));

int   c;

while   ((c=in.read())!=-1)   {

out.write(c);

}

out.close();

in.close();

}

}   catch   (Exception   ex)   {

conn.rollback();

throw   ex;

}

/*   恢复原提交状态   */

conn.setAutoCommit(defaultCommit);

}

java 空clob_CLOB字段在java中操作相关推荐

  1. java mysql查询字段换行,java类中写sql语句,查询条件包含换行

    java类中写sql语句,查询条件包含换行 detachedCriteria.add(Restrictions.or( Restrictions.like("chengBanDanWeiId ...

  2. java list多字段排序_java中list通过多条件排序

    实现的效果类似于这样,首先通过一级类别id排序,其次是二级类别,最后是二级类别中的各项合计排序: 方法一 /** * 单品容器排序 * * @param productSellStatList * @ ...

  3. java空对象怎么判断,java怎么判断对象为空

    java怎么判断对象为空 发布时间:2020-06-10 09:34:15 来源:亿速云 阅读:116 作者:Leah java怎么判断对象为空?针对这个问题,今天小编总结这篇有关对象判断的文章,希望 ...

  4. java 空数组如何判断,java判断数组是否为空

    java判断数组是否为空根据数组长度判断,如果为0,则为空,反之不是. (推荐学习:java课程)public class Main { public static void main(String[ ...

  5. java i 线程不安全_java中的++i是线程安全的吗?

    java中的++i是线程安全的吗?为什么?怎么使它线程安全呢? 先说答案: 非线程安全 先说下为什么是非线程安全的? 从Java内存模型说起 Java内存模型规定了所有的便利都存储在主内存中,每个线程 ...

  6. java反射字段6,java反射判断字段类型

    java动态获取字段类型,深入理解 Java 虚拟机 Java内存区域与内存溢出异常,java反射判断字段类型,java动态添加字段原理 利用java反射获取泛型类的类型参数具体类对象_计算机软件及应 ...

  7. java将map根据key分组_Java将List中的实体类按照某个字段进行分组并存放至Map中操作代码...

    本篇文章小编给大家分享一下Java将List中的实体类按照某个字段进行分组并存放至Map中操作代码,文章代码介绍的很详细,小编觉得挺不错的,现在分享给大家供大家参考,有需要的小伙伴们可以来看看. 1. ...

  8. Java中操作Xml使用备忘

    List item 文章目录 Java中操作Xml使用备忘 1. Hutool中XmlUtil的使用简介 2. Hutool中XmlUtil快速读取Xml字符串某个节点值 [简单取值时,推荐使用] 2 ...

  9. java注解判断字段是否存在_使用注解和反射判断指定的字段不能为空

    我们在写项目的时候,如何类比较少.判别指定对象的属性值是否为空,那确实可以,但是随着类的增多,判别对象的属性是否为空就非常的繁琐,所以可以使用自定义注解和反射来判定指定的字段是否为空. 第一步:创建一 ...

最新文章

  1. 输入网址按回车,到底发生了什么
  2. Case Study: 利用JS设计高级检索功能通过PHP获取MySQL数据
  3. chrome浏览器模拟手机 地理定位
  4. 腾讯企点总经理张晔:To B企业存在的价值是什么?丨鲸犀峰会
  5. 鸡啄米vc++2010系列11(非模态对话框的创建)
  6. 没有一部是烂片 香港最强水准的10部影片
  7. 将JSON数据转换成JAVA的实体类
  8. LightOJ1298 One Theorem, One Year(DP + 欧拉函数性质)
  9. LeetCode MySQL 1527. Patients With a Condition(like)
  10. JS闭包的简单理解。优缺点以及垃圾回收机制
  11. 【ARM-Linux开发】libxml/parser.h: 没有那个文件或目录解决方案
  12. 百面机器学习——svm使用信息熵寻找最优划分
  13. string进行大小写转换
  14. Android开发:关于高德地图轨迹纠偏,只显示两个点问题的整体概述
  15. 练手python_在图像上增加数字
  16. 电力系统的常用仿真模块MATLAB/SIMULINK(2)
  17. OA系统选型,明确需求是关键
  18. HDU4585 Shaolin
  19. python存根文件_python中的函数存根
  20. 第一学期ACM之旅总结篇

热门文章

  1. OBM,ODM,OEM分别指什么
  2. 【NLP】BiLSTM 命名实体识别 手写代码
  3. 计算机学院校友论坛,西工大计算机学院北京校友论坛成立并举办第一次活动
  4. 手机linux系统介绍,Ubuntu手机系统介绍及Ubuntu刷机教程分享
  5. java角谷_java实现递归设计——数鸭子和角谷定理
  6. CDS-MVSNet理解
  7. 刀具寿命预测特征处理方法、刀具磨损机理
  8. 用微信小程序实现视频通话
  9. 正则表达式的由来(Wikipedia和百度整合记录)
  10. 用C语言实现my_strncat