`

JDBC中处理大段文本数据

    博客分类:
  • JDBC
阅读更多
package jdbc;


import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.Reader;
import java.io.Writer;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;

/**
 *
 * @author HaoWang
 */
public class ClobTest {
    public static void main(String[] args) {
        create(1,"C:\\a.txt");
        read(1,"C:\\a_bak.txt");
    }
    public static void create(int cid, String txtPath) {
        Connection conn = null;
        PreparedStatement ps = null;
        String sql = null;
        ResultSet rs = null;
        try {
            conn = JdbcUtils.getConnection();
            sql = "insert into clob_test(cid,content) value(?,?)";
            ps = conn.prepareStatement(sql);
            ps.setInt(1, cid);
            File file = new File(txtPath);
            Reader reader = new BufferedReader(new FileReader(file));

            ps.setCharacterStream(2, reader, file.length());
            int i = ps.executeUpdate();
            System.out.println("i="+i);
            reader.close();
        } catch (Exception ex) {
            System.out.println(ex.toString());
        } finally {
            JdbcUtils.free(conn, ps, rs);
        }
    }
    public static void read(int cid, String txtPath) {
        Connection conn = null;
        PreparedStatement ps = null;
        String sql = null;
        ResultSet rs = null;
        try {
            conn = JdbcUtils.getConnection();
            sql = "Select content from clob_test where cid=?";
            ps = conn.prepareStatement(sql);
            ps.setInt(1, cid);
            rs = ps.executeQuery();
            while(rs.next()) {
                System.out.println(rs.getString(cid));  //直接获得文本内容
//                Clob clob = rs.getClob(cid);
//                Reader reader = clob.getCharacterStream();
                Reader reader = rs.getCharacterStream(cid);
                File file = new File(txtPath);
                Writer writer = new BufferedWriter(new FileWriter(file));
                char[] buff = new char[1024];
                for(int i=0; (i=reader.read(buff))>0;) {
                    writer.write(buff, 0, i);
                }
                writer.close();
                reader.close();
            }
        } catch (Exception ex) {
            System.out.println(ex.toString());
        } finally {
            JdbcUtils.free(conn, ps, rs);
        }
    }
}

 

分享到:
评论

相关推荐

    多线程以JDBC的方式返回海量数据

    在JDBC中,我们可以使用`Statement`或`PreparedStatement`对象来执行SQL查询。对于多线程处理,每个线程可以拥有自己的`Statement`或`ResultSet`对象。为了避免线程之间的数据竞争,我们需要确保每个线程只操作它...

    java使用jdbc将数据库数据导出到csv文件.pdf

    Java 是一种广泛使用的编程语言,它提供了多种方式来处理数据库数据,而 JDBC(Java Database Connectivity)是 Java 中连接数据库的标准 API 之一。将数据库数据导出到 CSV 文件是一种常见的数据交换格式,它可以被...

    基于JDBC从数据库中读取数据,在百度地图批量标注地点例程

    基于JDBC从数据库中读取数据,在百度地图批量标注地点例程

    jdbc 处理clob类型字段

    当我们在处理大型文本数据时,例如XML文档、长篇文章或者大段代码,数据库通常会提供CLOB(Character Large Object)类型来存储这类数据。本主题主要探讨如何使用JDBC有效地操作Oracle数据库中的CLOB类型字段,包括...

    Weblogic JDBC 数据源配置和详细参数说明

    Weblogic JDBC 数据源配置和详细参数说明 一、JDBC 概述 ...本文详细介绍了 Weblogic 8.1 中 JDBC 数据源的配置和详细参数说明,包括连接池、数据源、JDBC 驱动程序设置、配置 JDBC 连接池等内容。

    jdbc-批量插入数据

    批量插入数据是数据库操作中常见的一种优化策略,特别是在数据分析、数据迁移或大数据处理等场景。传统的单条插入方式可能会导致大量的网络往返和数据库事务开销,而批量插入则通过一次提交多个SQL语句来减少这些...

    使用servlet,jdbc将mysql中数据显示在jsp页面中

    在Web开发中,Servlet、JDBC以及JSP(JavaServer Pages)是常见的技术组合,用于构建动态、数据驱动的Web应用程序。在这个项目示例中,我们将深入探讨如何使用这些技术将MySQL数据库中的数据呈现到JSP页面上。 首先...

    JDBC数据同步

    JDBC(Java Database Connectivity)数据同步是Java编程中一种重要的数据库操作技术,它允许应用程序通过标准接口与各种数据库进行交互。在分布式系统或数据仓库环境中,数据同步是确保多个数据库或数据源间信息一致...

    sap JDBC数据源配置

    ### SAP JDBC 数据源配置 #### 引言与目的 本文档旨在提供详细的步骤指南,用于在SAP NetWeaver 7.0 和 SAP Composite Environment (CE) 7.1 上配置 JDBC 数据源和系统。通过这些步骤,用户可以创建一个独立的数据...

    JDBC 连接到 PostgreSQL 数据库获取数据简单例子

    在Java编程中,JDBC(Java Database Connectivity)是用于与各种数据库进行交互的一套标准API。本示例将详细介绍如何使用JDBC连接到PostgreSQL数据库并执行简单的数据获取操作。PostgreSQL是一种开源的对象关系型...

    JDBC数据访问对象学习资料

    总结起来,JDBC数据访问对象学习资料将引导你理解如何在MVC架构中使用JDBC进行数据访问层的封装,包括DAO设计模式的应用,JDBC的基本操作流程,以及如何在实际项目中优化和提升数据访问的效率。通过学习,你将能够更...

    jdbc连接程序实现不同数据库数据的迁移

    综上所述,通过JDBC连接程序实现数据库数据迁移是一个涉及多步骤的过程,包括连接数据库、编写查询、处理结果、批量插入、资源管理和错误处理。在实际操作中,应根据具体业务需求进行调整和优化,确保迁移的高效和...

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

    总之,理解和掌握CLOB在JDBC中的处理方式是开发与Oracle数据库交互的应用程序时的重要技能,尤其是当处理大量文本数据时。确保高效、安全地操作这些大字段,可以提高应用程序的性能和用户体验。

    jdbc 操作oracle blob数据

    jdbc 操作oracle blob数据jdbc 操作oracle blob数据jdbc 操作oracle blob数据jdbc 操作oracle blob数据jdbc 操作oracle blob数据jdbc 操作oracle blob数据jdbc 操作oracle blob数据jdbc 操作oracle blob数据jdbc ...

    JDBC数据访问接口

    5. **事务处理**:在JDBC中,可以通过Connection对象的setAutoCommit()方法来开启或关闭自动提交,手动管理事务的提交和回滚,例如使用commit()和rollback()方法。 6. **分页显示**:在JDBC中实现分页查询通常需要...

    JDBC读取数据库元数据,自动生成JAVA实体类

    JDBC读取数据库元数据,生成JAVA实体类

    logstash-jdbc-input 同步数据到es的多任务配置

    Logstash-jdbc-input插件是Logstash框架中的一个输入插件,主要用于从关系型数据库(如MySQL)中抽取数据并将其同步到Elasticsearch。在ELK(Elasticsearch、Logstash、Kibana)堆栈中,Logstash起到了数据处理和...

    基于Spark与JDBC技术的MongoDB数据导入与MySQL导出处理设计源码

    本项目为基于Spark和JDBC技术的MongoDB数据导入与MySQL导出处理设计源码,包含218个文件,其中包括163个数据文件、28个Python源代码文件、11个文本文件、7个XML文件、2个IDE配置文件、2个锁定文件、2个控制文件、1个...

    JAVA代码数据驾驶舱应用,可通过JDBC、SOLR、ELASTIC等数据源,创建数据集,分析数据图表,生产数据看板.zip

    在数据驾驶舱中,JDBC用于从数据库提取数据,进行查询和操作,为数据分析提供基础。 2. **SOLR**:Solr是一个开源的企业级搜索平台,基于Lucene库。它可以处理大量的文本和非结构化数据,进行全文检索、分布式搜索...

    JDBC数据表格显示

    标题“JDBC数据表格显示”涉及的是Java编程中如何通过JDBC(Java Database Connectivity)将数据库中的数据展示在用户界面的表格中。JDBC是Java中用于与各种类型的数据库进行交互的标准API,它允许Java程序执行SQL...

Global site tag (gtag.js) - Google Analytics