`
高军威
  • 浏览: 182047 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

java 操作clob大字段

阅读更多
特别长的字符串 想存到数据库中,的clob大字段中,大概4000字时报错,字符串太长,原因是sql语句大小不能超过4K,所以报这错,下面是我在网上找到的解决方法
package com.sinocec.model;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.Writer;
import java.sql.Clob;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

public class ClobTest {
    
    private static Connection conn;
    
    static {
        try {
            Class.forName("oracle.jdbc.driver.OracleDriver");
            conn = DriverManager.getConnection(
                    "jdbc:oracle:thin:@192.168.1.11:1521:orcl","scott","tiger");
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }
    
    public static void main(String[] args) throws SQLException, IOException {
        //testInsert();
        //testUpdate();
        //testRead();
    }

    private static void testInsert() throws SQLException {
        String sql = "insert into TECDESIGNALBUM (td_id,FILENAME,note) values (350,'bb',empty_clob())";
        Statement stm = conn.createStatement();
        stm.execute(sql);
        stm.close();
    }
    
    private static void testUpdate() throws SQLException, IOException {
        String bigdata = "这是一个大字段。。。";
        String sql = "select note from TECDESIGNALBUM where td_id = 350 for update";
        Statement stm = conn.createStatement();
        ResultSet rs = stm.executeQuery(sql);
        while (rs.next()) {
            Clob c = rs.getClob(1);
            c.truncate(0);// clear
            Writer w = c.setCharacterStream(1L);//The first position is 1
            w.write(bigdata);
            w.close();
            c.setString(c.length(), bigdata);
            conn.commit();
        }
        conn.close();
    }
    
    private static void testRead() throws SQLException, IOException {
        String sql = "select content from test_clob where id = 1";
        PreparedStatement pstm = conn.prepareStatement(sql);
        ResultSet rs = pstm.executeQuery();
        while (rs.next()) {
            Clob clob = rs.getClob("content");
            System.out.println("clob.getSubString(1, 2) --> " + clob.getSubString(1, 2));
            System.out.println("clob.getSubString(1, (int)clob.length()) --> " + 
                    clob.getSubString(1, (int)clob.length()));
            BufferedReader r = new BufferedReader(clob.getCharacterStream());
            String s;
            while ((s = r.readLine()) != null) {
                System.out.println(s);
            }
            r.close();
        }
    }
    
}
分享到:
评论

相关推荐

    数据库读取clob字段

    3. **处理CLOB对象**:获取结果集中的CLOB对象,并对其进行读取或操作。 4. **关闭资源**:最后确保关闭所有的数据库连接和释放相关的资源。 #### 示例代码分析 下面是一个Java方法`clobRead()`的具体实现,用于从...

    jsp结合html编辑器FCKeditor对Oracle CLOB大字段操作范例

    在这个示例中,我们将探讨如何使用JSP(JavaServer Pages)与HTML编辑器FCKeditor相结合,来处理Oracle数据库中的CLOB(Character Large Object)类型的大字段。CLOB类型用于存储大量的文本数据,如文章、报告或HTML...

    Java读取Oracle大字段数据(CLOB)的2种方法

    Java读取Oracle大字段数据(CLOB)是Java开发中常见的操作之一, Oracle大字段数据(CLOB)是一种大规模的文本数据类型,用于存储大量的文本数据。 Java读取Oracle大字段数据(CLOB)有多种方法,本文将详细介绍...

    jdbc批量插入大字段

    因此,"jdbc批量插入大字段"这个话题旨在探讨如何高效地通过Java JDBC来实现Blob字段的批量插入,以提高性能。 首先,我们需要了解JDBC(Java Database Connectivity),它是Java编程语言与各种数据库之间通信的...

    hibernate中处理大字段 网上收集的文档

    本文将深入探讨在Hibernate中如何有效地管理和操作大字段,以确保性能和数据完整性的最佳实践。 一、CLOB与BLOB类型 1. CLOB:CLOB用于存储非结构化的文本数据,如长篇小说、XML文档等。在Hibernate中,CLOB对应的...

    ORACLE数据库中插入大字段数据的解决方法

    在实际应用中,需要确保代码正确处理了不同数据库之间的数据类型差异,比如MySQL的TEXT到ORACLE的CLOB,同时考虑到大字段的处理。 总结来说,处理ORACLE数据库中的大字段数据时,应关注存储模式选择、批量操作、...

    Mybatis 处理 CLOB、BLOB 类型数据

    MyBatis 处理 CLOB、BLOB 类型数据是指在使用 MyBatis 框架时,如何正确地处理大字段类型的数据。CLOB(Character Large OBject)和 BLOB(Binary Large OBject)都是大字段类型,用于存储大量的数据。 CLOB 类型...

    jdbc 处理clob类型字段

    本主题主要探讨如何使用JDBC有效地操作Oracle数据库中的CLOB类型字段,包括插入(Insert)、删除(Delete)、更新(Update)和查询(Select)等操作。 首先,我们需要理解CLOB的基本概念。CLOB是一种数据库对象,...

    图片存入Oracle中,用clob和blob两种方式

    - **准备环境**:首先确保已经安装了Oracle数据库客户端和相应的驱动程序,例如JDBC驱动,以便通过编程语言(如Java、Python等)与数据库交互。 - **连接数据库**:使用相应的连接字符串、用户名和密码建立与...

    Hibernate存储Clob字段的方式总结

    但随着数据库技术的发展,越来越多的数据库厂商提供了更加简单的方式来操作这些大字段。例如,Oracle数据库提供了支持以String方式处理Clob的新驱动程序。 在Hibernate框架中,可以直接将数据库的Clob字段映射为...

    Oracle导出Clob,Blob工具

    2. **Oracle.ManagedDataAccess.dll**:这是Oracle官方提供的Managed Driver,它是一个.NET Framework库,允许开发者在.NET环境中直接访问Oracle数据库,支持Clob和Blob操作。 3. **SqlSugar.dll**:这是一个流行的...

    oracle数据库的clob大字段在jdbc中的处理方式

    Oracle数据库中的CLOB(Character Large Object)类型是用来存储大量字符数据的,比如长文本、XML文档等。在Java中,当我们需要通过JDBC(Java ...确保高效、安全地操作这些大字段,可以提高应用程序的性能和用户体验。

    Hibernate操作数据库大字段的示例(附源码及详细开发使用方法)。

    本示例将详细介绍如何在Hibernate中操作数据库的大字段。 首先,我们来理解“大字段”在数据库中的概念。在SQL标准中,BLOB(Binary Large Object)和CLOB(Character Large Object)用于存储大量的二进制数据和...

    读写大字段内容到数据库

    这篇博客文章“读写大字段内容到数据库”探讨了如何处理这类数据,特别是在Java环境下。我们将深入讨论相关的知识点。 首先,Blob类型在SQL中用于存储可变长度的非结构化数据。它与Clob(Character Large Object)...

    spring+hibernate 解决大字段(clob)

    ### Spring与Hibernate处理大字段(CLOB/BLOB) 在企业级应用开发中,经常会遇到需要存储大量文本或二进制数据的情况,这时就需要用到数据库的大字段类型如CLOB(Character Large Object)和BLOB(Binary Large ...

    java对oracle大字段读取类

    java对oracle大字段读取类,因项目需求要对大字段进行存取,在网上搜集了些,自己加工了些。用起来很方便!

    spring1.2+hibernate2对大字段的处理实例

    总之,处理大字段是Java企业级应用开发中的常见挑战,通过合理的数据模型设计、数据库优化和框架配置,我们可以有效地管理和操作这些大数据。这个"spring1.2+hibernate2对大字段的处理实例"就是一个很好的学习资源,...

    批量导出ORACLE数据库BLOB字段生成图片

    用户只需提供必要的连接信息和表字段名,就能自动批量导出BLOB字段中的图片。 总之,批量导出Oracle数据库中的BLOB字段生成图片涉及到了数据库连接、SQL查询、BLOB数据处理和文件I/O等多个技术环节。掌握这些知识点...

    类型长度大于最大值(Java调用存储过程)

    这个版本相对较为老旧,可能存在与新版本Oracle数据库(如Oracle 11g XE)的兼容性问题,尤其是在处理大字段(如`VARCHAR2`、`CLOB`等)时。现代的Oracle数据库支持更大的字段长度,而旧版驱动可能未更新相应的处理...

    spring1.2+hibernate3对大字段的处理实例,供大家学习与交流,可直接运行

    5. **批处理**:在进行大量大字段操作时,可以使用批处理更新或插入,减少数据库交互次数,提高效率。 6. **数据库层面的优化**:例如,使用Oracle数据库时,可以优化表结构、索引以及存储过程,以适应大字段的处理...

Global site tag (gtag.js) - Google Analytics