博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JDBC 关于大文本数据
阅读量:5942 次
发布时间:2019-06-19

本文共 2162 字,大约阅读时间需要 7 分钟。

大文本数据Clob,在不同的数据库中类型名不一致,有的是text格式,有的是clob,还有其他一些格式

 

package test;

import java.io.BufferedReader;

import java.io.BufferedWriter;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.Reader;
import java.io.Writer;
import java.sql.Clob;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Date;

public class ClobTest {

    public static void main(String[] args) throws SQLException, IOException, ClassNotFoundException {

        read();
    }

    static void create() throws SQLException, IOException {

        Connection conn = null;
        PreparedStatement ps = null;
        ResultSet rs = null;
        Reader reader = null;
        try {
            conn = JdbcUtils.getConnection();
            //3,Statement用于“运送”sql语句和sql语句执行结果
            String sql = "insert into clob_test(big_text) values (?)";

            ps = conn.prepareStatement(sql);

            //ps.setAsciiStream(int parameterIndex, InputStream x, int length)
            File file = new File("src/test/ClobTest.java");
            reader = new BufferedReader(new FileReader(file));
            ps.setCharacterStream(1, reader,file.length());
            //4,执行sql
            int count = ps.executeUpdate();

            System.out.println(count);

        } finally {
            JdbcUtils.free(rs, ps, conn);
            if(reader!=null) {
                reader.close();//为了方便这样写了
            }
        }
    }
   

    private static void read() throws ClassNotFoundException, SQLException, IOException {

        Connection conn = null;
        Statement st = null;
        ResultSet rs = null;
        Date bithday = null;
        try {
            conn = JdbcUtils.getConnection();

            st = conn.createStatement();

           
            rs = st.executeQuery("select big_text from clob_test");
           
            while(rs.next()) {

                Clob clob = rs.getClob(1);

                BufferedReader reader = new BufferedReader(clob.getCharacterStream());
               
                //Reader rd = rs.getCharacterStream(1);//这样也可以的
                //String s = rs.getString(1);//String也可以 关键是你的内存有没有那么大
                File file = new File("src/ClobTest_bak.java");
                BufferedWriter writer = new BufferedWriter(new FileWriter(file));
                String line = null;
                while((line=reader.readLine())!=null) {
                    writer.write(line);
                    writer.newLine();
                    writer.flush();
                }
                writer.close();
                reader.close();
            }
        } finally {
            JdbcUtils.free(rs, st, conn);
        }

    }

}

转载地址:http://suqtx.baihongyu.com/

你可能感兴趣的文章
有序的双链表
查看>>
程序员全国不同地区,微信(面试 招聘)群。
查看>>
【干货】界面控件DevExtreme视频教程大汇总!
查看>>
闭包 !if(){}.call()
查看>>
python MySQLdb安装和使用
查看>>
Java小细节
查看>>
poj - 1860 Currency Exchange
查看>>
chgrp命令
查看>>
Java集合框架GS Collections具体解释
查看>>
洛谷 P2486 BZOJ 2243 [SDOI2011]染色
查看>>
linux 笔记本的温度提示
查看>>
数值积分中的辛普森方法及其误差估计
查看>>
Web service (一) 原理和项目开发实战
查看>>
跑带宽度多少合适_跑步机选购跑带要多宽,你的身体早就告诉你了
查看>>
广平县北方计算机第一届PS设计大赛
查看>>
深入理解Java的接口和抽象类
查看>>
java与xml
查看>>
Javascript异步数据的同步处理方法
查看>>
iis6 zencart1.39 伪静态规则
查看>>
SQL Server代理(3/12):代理警报和操作员
查看>>