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 longtext
21 );
22 */
23 public class ClobDemo {
24 @Test
25 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 @Test
48 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 }
大文本的存取
时间: 2024-10-06 14:21:29