首页 > 代码库 > 用jdbc访问大段文本数据

用jdbc访问大段文本数据

 1 package it.cast.jdbc; 2  3 import java.io.BufferedReader; 4 import java.io.BufferedWriter; 5 import java.io.File; 6 import java.io.FileNotFoundException; 7 import java.io.FileReader; 8 import java.io.FileWriter; 9 import java.io.IOException;10 import java.io.Reader;11 import java.io.Writer;12 import java.sql.Clob;13 import java.sql.Connection;14 import java.sql.PreparedStatement;15 import java.sql.ResultSet;16 import java.sql.SQLException;17 import java.sql.Statement;18 19 public class ClobTest {20 21     public static void main(String[] args) throws IOException {22         read();23     }24 25     static void create() throws IOException {26         Connection conn = null;27         PreparedStatement ps = null;28         ResultSet rs = null;29 30         try {31             // 建立连接32             conn = jdbcUtils.getConnection();33 34             // 创建语句35             String sql = "insert into clob_test(big_text) values (?)";36 37             ps = conn.prepareStatement(sql);38 39             File file = new File("src/it/cast/jdbc/Base.java");40             Reader reader = new BufferedReader(new FileReader(file));41 42             ps.setCharacterStream(1, reader, (int) file.length());43 44             // 执行语句45             int i = ps.executeUpdate();46             reader.close();47 48             System.out.println(i);49 50         } catch (SQLException e) {51 52             e.printStackTrace();53         } finally {54             jdbcUtils.free(rs, ps, conn);55         }56     }57 58     static void read() throws IOException {59         Connection conn = null;60         Statement st = null;61         ResultSet rs = null;62 63         try {64 65             // 建立连接66             conn = jdbcUtils.getConnection();67 68             // 创建语句69             st = conn.createStatement();70 71             String sql = "select big_text from clob_test";72 73             // 执行语句74             rs = st.executeQuery(sql);75 76             while (rs.next()) {77                 Clob clob = rs.getClob(1);78                 Reader reader = clob.getCharacterStream();79                 File file = new File("jdbcUtils_bak.java");80                 Writer writer = new BufferedWriter(new FileWriter(file));81                 char[] buff = new char[1024];82 83                 for (int i = 0; (i = reader.read(buff)) > 0;) {84                     writer.write(buff, 0, i);85                 }86 87                 writer.close();88                 reader.close();89             }90 91         } catch (SQLException e) {92             e.printStackTrace();93         } finally {94             jdbcUtils.free(rs, st, conn);95         }96     }97 98 }
ClobTest