1 package cn.itcast.jdbc.lob; 2 3 import java.io.File; 4 import java.io.FileReader; 5 import java.io.FileWriter; 6 import java.io.Reader; 7 import java.io.Writer; 8 import java.sql.Connection; 9 import java.sql.PreparedStatement;10 import java.sql.ResultSet;11 12 import org.junit.Test;13 14 import cn.itcast.util.JdbcUtil;15 //大文本的存取16 /*17 use day15;18 create table t1(19 id int primary key,20 content longtext21 );22 */23 public class ClobDemo {24 @Test25 public void testAdd(){26 Connection conn = null;27 PreparedStatement stmt = null;28 try{29 conn = JdbcUtil.getConnection();30 stmt = conn.prepareStatement("insert into t1 (id,content) values (?,?)");31 stmt.setInt(1, 1);32 //大数据要使用流的形式33 File file = new File("c:/jpm.txt");34 Reader reader = new FileReader(file);35 stmt.setCharacterStream(2, reader, (int)file.length());//不能使用long的参数,因为mysql根本支持不到那么大的数据,就没有实现36 37 int i = stmt.executeUpdate();38 if(i>0)39 System.out.println("插入成功");40 41 }catch(Exception e){42 e.printStackTrace();43 }finally{44 JdbcUtil.release(null, stmt, conn);45 }46 }47 @Test48 public void testRead(){49 Connection conn = null;50 PreparedStatement stmt = null;51 ResultSet rs = null;52 try{53 conn = JdbcUtil.getConnection();54 stmt = conn.prepareStatement("select * from t1 where id=?");55 stmt.setInt(1, 1);56 //大数据要使用流的形式57 //保存到E盘上58 rs = stmt.executeQuery();59 if(rs.next()){60 Reader reader = rs.getCharacterStream("content");61 Writer writer = new FileWriter("E:/jpm.txt");62 char c[] = new char[1024];63 int len = -1;64 while((len=reader.read(c))!=-1){65 writer.write(c, 0, len);66 }67 reader.close();68 writer.close();69 }70 71 }catch(Exception e){72 e.printStackTrace();73 }finally{74 JdbcUtil.release(null, stmt, conn);75 }76 }77 }