热门标签 | HotTags
当前位置:  开发笔记 > 数据库 > 正文

在Java+Oracle环境下对于clob类型的数据的插入-mysql教程

SQL类型CLOB在JavaTM编程语言中的映射关系。SQLCLOB是内置类型,它将CharacterLargeObject存储为数据库表的某一行中的

SQL 类型 CLOB 在 JavaTM 编程语言中的映射关系。SQL CLOB 是内置类型,它将 Character Large Object 存储为数据库表的某一行中的

SQL 类型 CLOB 在 JavaTM 编程语言中的映射关系。SQL CLOB 是内置类型,它将 Character Large Object 存储为数据库表的某一行中的一个列值。默认情况下,驱动程序使用 SQL locator(CLOB) 实现 Clob 对象,这意味着 CLOB 对象包含一个指向 SQL CLOB 数据而不是数据本身的逻辑指针。Clob 对象在它被创建的事务处理期间有效。

CLOB 接口提供某些方法来获得 SQL CLOB (Character Large Object) 值长度、在客户端实现 CLOB 值以及搜索子字符串或 CLOB 值中的 CLOB 对象。接口 ResultSet、CallableStatement 和 PreparedStatement 中的方法(如 getClob 和 setClob)允许编程人员访问 SQL CLOB 值。此外,此接口还拥有更新 CLOB 值的方法。

Oracle中,Varchar2支持的最大字节数为4KB,所以对于某些长字符串的处理,我们需要用CLOB类型的字段,CLOB字段最大支持4GB。
还有其他几种类型:
blob:二进制,如果exe,zip
clob:单字节码,比如一般的文本文件.
nlob:多字节码,如UTF格式的文件.
以下就是对CLOG字段的操作方法,在我们的项目中帮助文档部分用到。
1、首先是写入

Java代码

  • /* 以下表PF_HELP_CONTENT中的HCONTENT字段时CLOB类型的 */
  • // 通过序列器生成帮助ID
  • //插入一条数据,注意CLOB字段,需要先插入一个空的clob类型 empty_clob(),然后再单独更新clob字段
  • try
  • {
  • rtn = DbUtils.executeUpdate(sql,hid);
  • Connection cOnn= DbUtils.getConnection();
  • java.sql.PreparedStatement pstmt = conn.prepareStatement(sqlclob);
  • rs= pstmt.executeQuery();
  • {
  • }
  • Writer write = clob.getCharacterOutputStream();
  • write.write(helpform.getHContent());
  • write.flush();
  • write.close();
  • rs.close();
  • conn.commit();
  • conn.close();
  • }
  • catch(Exception ex)
  • {
  • Java代码

  • /* 以下表PF_HELP_CONTENT中的HCONTENT字段时CLOB类型的 */
  • // 通过序列器生成帮助ID
  • //插入一条数据,注意CLOB字段,需要先插入一个空的clob类型 empty_clob(),然后再单独更新clob字段
  • try
  • {
  • rtn = DbUtils.executeUpdate(sql,hid);
  • Connection cOnn= DbUtils.getConnection();
  • java.sql.PreparedStatement pstmt = conn.prepareStatement(sqlclob);
  • rs= pstmt.executeQuery();
  • {
  • }
  • Writer write = clob.getCharacterOutputStream();
  • write.write(helpform.getHContent());
  • write.flush();
  • write.close();
  • rs.close();
  • conn.commit();
  • conn.close();
  • }
  • catch(Exception ex)
  • {
  • /* 以下表PF_HELP_CONTENT中的HCONTENT字段时CLOB类型的 */ // 通过序列器生成帮助ID Map map = Query.getMap("Select TO_CHAR(SEQ_HID.nextval) HID FROM DUAL "); hid = String.valueOf(map.get("HID")); //插入一条数据,,注意CLOB字段,需要先插入一个空的clob类型 empty_clob(),然后再单独更新clob字段 sql = "Insert INTO PF_HELP_CONTENT(HID,HCONTENT) VALUES (?,empty_clob()) "; try { //执行插入 rtn = DbUtils.executeUpdate(sql,hid); /* 插入成功后,修改HCONTENT字段内容 */ //取得数据库连接 Connection cOnn= DbUtils.getConnection(); //手动提交 conn.setAutoCommit(false); //定义ResultSet 和 Clob 变量 ResultSet rs = null; oracle.sql.CLOB clob = null; //更新SQL String sqlclob = "Select HCONTENT FROM PF_HELP_CONTENT Where HID=? FOR Update "; java.sql.PreparedStatement pstmt = conn.prepareStatement(sqlclob); //hid是varchar2类型的,所以用setString pstmt.setString(1,hid); //执行update语句 rs= pstmt.executeQuery(); if(rs.next()) { //取得刚才的HCONTENT的内容,也就是刚才添加的empty_clob() clob = (oracle.sql.CLOB)rs.getClob(1); } //需要用clob.getCharacterOutputStream()流方式输出 Writer write = clob.getCharacterOutputStream(); //写入具体内容,helpform.getHContent() 存的是帮助的内容 write.write(helpform.getHContent()); write.flush(); write.close(); rs.close(); //提交 conn.commit(); conn.close(); } catch(Exception ex) { //......... }


    2、修改CLOB字段内容

  • 推荐阅读
    • 探讨如何真正掌握Java EE,包括所需技能、工具和实践经验。资深软件教学总监李刚分享了对毕业生简历中常见问题的看法,并提供了详尽的标准。 ... [详细]
    • 本文详细介绍了Python编程语言的学习路径,涵盖基础语法、常用组件、开发工具、数据库管理、Web服务开发、大数据分析、人工智能、爬虫开发及办公自动化等多个方向。通过系统化的学习计划,帮助初学者快速掌握Python的核心技能。 ... [详细]
    • 本文介绍了如何在 Oracle 数据库中结合使用 UPDATE 和 SELECT 语句,以实现复杂的数据更新操作。首先准备测试环境和数据表,然后通过嵌套查询的方式从其他表中获取需要更新的值,最后执行更新操作并验证结果。 ... [详细]
    • 自己用过的一些比较有用的css3新属性【HTML】
      web前端|html教程自己用过的一些比较用的css3新属性web前端-html教程css3刚推出不久,虽然大多数的css3属性在很多流行的浏览器中不支持,但我个人觉得还是要尽量开 ... [详细]
    • MySQL DateTime 类型数据处理及.0 尾数去除方法
      本文介绍如何在 MySQL 中处理 DateTime 类型的数据,并解决获取数据时出现的.0尾数问题。同时,探讨了不同场景下的解决方案,确保数据格式的一致性和准确性。 ... [详细]
    • 本文探讨了在Windows Server 2008环境下配置Tomcat使用80端口时遇到的问题,包括端口被占用、多项目访问失败等,并提供详细的解决方法和配置建议。 ... [详细]
    • 通过Web界面管理Linux日志的解决方案
      本指南介绍了一种利用rsyslog、MariaDB和LogAnalyzer搭建集中式日志管理平台的方法,使用户可以通过Web界面查看和分析Linux系统的日志记录。此方案不仅适用于服务器环境,还提供了详细的步骤来确保系统的稳定性和安全性。 ... [详细]
    • 本文介绍如何在PostgreSQL数据库中正确插入和处理JSON数据类型,确保数据完整性和避免常见错误。 ... [详细]
    • 本文探讨了Microsoft OLE DB Provider for SQL Server错误80004005的成因与解决方法,详细分析了SQL Server连接失败的原因,并提供了多个有效的解决方案。 ... [详细]
    • 深入理解T-SQL中的NULL与三值逻辑
      本文探讨了SQL Server中的三值逻辑,解释了谓词计算结果为TRUE、FALSE和UNKNOWN的规则。通过具体示例,详细说明了如何正确处理NULL值,并探讨了在不同约束条件下的行为。 ... [详细]
    • 本文介绍如何在Qt应用程序中让QLineEdit控件获得输入焦点,通过简单的代码示例和解释,帮助开发者更好地理解和使用这一功能。 ... [详细]
    • 数据结构入门:栈的基本概念与操作
      本文详细介绍了栈这一重要的数据结构,包括其基本概念、顺序存储结构、栈的基本操作(如入栈、出栈、清空栈和销毁栈),以及如何利用栈实现二进制到十进制的转换。通过具体代码示例,帮助读者更好地理解和应用栈的相关知识。 ... [详细]
    • 探讨如何从数据库中按分组获取最大N条记录的方法,并分享新年祝福。本文提供多种解决方案,适用于不同数据库系统,如MySQL、Oracle等。 ... [详细]
    • 本文介绍如何在SQL Server中对Name列进行排序,使特定值(如Default Deliverable Submission Notification)显示在结果集的顶部。 ... [详细]
    • 在尝试用另一台电脑的MySQL文件替换本地D:\xampp\mysql目录后,MySQL服务无法启动。错误提示显示MySQL意外关闭,可能是由于端口冲突、依赖缺失、权限问题或崩溃等原因引起。 ... [详细]
    author-avatar
    _快樂Smile_903
    这个家伙很懒,什么也没留下!
    PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
    Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有