1 package cn.itcast.jdbc.lob; 2 3 import java.io.File; 4 import java.io.FileInputStream; 5 import java.io.FileOutputStream; 6 import java.io.FileReader; 7 import java.io.FileWriter; 8 import java.io.InputStream; 9 import java.io.OutputStream;10 import java.io.Reader;11 import java.io.Writer;12 import java.sql.Connection;13 import java.sql.PreparedStatement;14 import java.sql.ResultSet;15 16 import org.junit.Test;17 18 import cn.itcast.util.JdbcUtil;19 20 //大二进制数据的存取21 /*22 use day15;23 create table t2(24 id int primary key,25 content longblob26 );27 */28 public class BlobDemo {29 @Test30 public void testAdd(){31 Connection conn = null;32 PreparedStatement stmt = null;33 try{34 conn = JdbcUtil.getConnection();35 stmt = conn.prepareStatement("insert into t2 (id,content) values (?,?)");36 stmt.setInt(1, 1);37 38 InputStream in = new FileInputStream("c:/1.jpg");39 stmt.setBinaryStream(2, in, in.available());40 41 int i = stmt.executeUpdate();42 if(i>0)43 System.out.println("插入成功");44 45 }catch(Exception e){46 e.printStackTrace();47 }finally{48 JdbcUtil.release(null, stmt, conn);49 }50 }51 @Test52 public void testRead(){53 Connection conn = null;54 PreparedStatement stmt = null;55 ResultSet rs = null;56 try{57 conn = JdbcUtil.getConnection();58 stmt = conn.prepareStatement("select * from t2 where id=?");59 stmt.setInt(1, 1);60 //大数据要使用流的形式61 //保存到E盘上62 rs = stmt.executeQuery();63 if(rs.next()){64 InputStream in = rs.getBinaryStream("content");65 OutputStream out = new FileOutputStream("e:/1.jpg");66 byte b[] = new byte[1024];67 int len = -1;68 while((len=in.read(b))!=-1){69 out.write(b, 0, len);70 }71 out.close();72 in.close();73 }74 75 }catch(Exception e){76 e.printStackTrace();77 }finally{78 JdbcUtil.release(null, stmt, conn);79 }80 }81 }