文件输入流(FileInputStream)
预处理语句对象(PreparedStatement)
InputStream存储到blob (MySQL的longblob)字段中(用于存储大量2进制数据)
文件输出流(FileOutputStream)
输入输出流对接
1.PreparedStatement为预处理语句对象,可以使用占位符(?)创建SQL语句,在SQL语句创建后再使用具体的值替换占位符(?)
2.
FileInputStream是以字节(byte)为单位的文件输入流,可以将FileInputStream的对象(实例)直接保存到数据表(blob类型字段)中。
例如:创建数据表myImage的SQL语句如下: create table myImage (code int, imgName varchar(30), img blob)
如果使用的是MySQL数据库,则需要创建longblob类型的字段
存储图片到数据库的代码如下:
3.从数据库中读取图片:
从数据库中可以把存储到表中的输入流(input)对象获取出来,并通过文件输出流以字节(byte)为单位写入到目标,
代码如下: ResultSet rs = stmt. executeQuery (select * from myImage);
rs. next(); InputStream input = rs. getBinaryStream (“img”);
以上代码可以获取到存储到数据库中的input对象