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 }