大对象的处理

大对象的处理


存储大对象

1.使用Collection.createBlob()创建一个Blob对象
2.获得这个Blob对象的输出流,setBinaryStream(1)
3.向流中写入字节
4.通过ps.setBlob()将二进制存在数据库中

PreparedStatement ps=conn.prepareStatement(sql);
Blob blob=conn.createBlob();//创建blob对象
OutputStream os=blob.setBinaryStream(1);//获得blob输出流
FileInputStream fis=new FileInputStream(path);
byte[] bs=new byte[100];//设置缓冲区
int size=-1;
while((size=fis.read(bs))!=-1){
	os.write(bs,0,size);
}
fis.close();
os.close();




读取大对象

1.查询出ResultSet
2.获取Blob对象
3.获得这个对象的输入流
4.向流中写入字节

	String sql="select * from emp where empno=?";
	PreparedStatement ps=conn.prepareStatement(sql);
	ps.setInt(1,empno);
	ResultSet rs=ps.executeQuery();//获取ResultSet
	if(rs.next()){
	Blob b=rs.getBlob();//获取Blob对象
	InputStream is=b.getBinaryStream();
	FileOutputStream fos=new FileOutputStream(Filename);
	}
	byte bs=new byte[100];
	int size=-1;
	while((size=is.read())!=-1){
		fos.write(bs,0,size);
	}
	fos.close();
	is.close();

猜你喜欢

转载自blog.csdn.net/XV9216543/article/details/83792521