package com.itheima.clob.test;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.OutputStream;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import org.junit.Test;
import com.itheima.utils.JdbcUtil;
/**
* 大二进制数据读写(图片,电影,音乐,字节码文件) Mysq: blob longblob
* @author wangli
*
*
use day16;
create table testblob(
id int primary key,
content longblob
);
*
*/
public class BlobTest02 {
//写一个图片到数据表中 测试时显示记录,注意 select id from testblob;
@Test
public void testAddBlob(){
Connection con = null;
PreparedStatement st =null;
try {
con = JdbcUtil.getConnection();
String sql="insert into testblob values(?,?)";
st = con.prepareStatement(sql);
//赋值
st.setInt(1, 1);
InputStream is = new FileInputStream("src/1.jpg");//找到src下的文件1.jpg
st.setBinaryStream(2, is, is.available());
st.executeUpdate();
} catch (Exception e) {
e.printStackTrace();
}finally{
JdbcUtil.release(null, st, con);
}
}
@Test //读取一个图片
public void testReaderblob(){
Connection con = null;
PreparedStatement st =null;
ResultSet rs = null;
try {
con = JdbcUtil.getConnection();
String sql="select * from testblob where id=?";
st = con.prepareStatement(sql);
//赋值
st.setInt(1, 1);
//3.读取
rs = st.executeQuery();
if(rs.next()){
//结果集中有数据
InputStream is = rs.getBinaryStream("content");
OutputStream os = new FileOutputStream("d:/1.jpg");
int len=-1;
byte buffer[] = new byte[1024];
while((len=is.read(buffer))!=-1){
os.write(buffer, 0, len);
}
os.close();
is.close();
}
} catch (Exception e) {
e.printStackTrace();
}finally{
JdbcUtil.release(null, st, con);
}
}
}