以下哪种JDBC方法用于检索BLOB数据?( )
getBinaryStream()
getText()
getAsciiStream()
getString()
getUniStream()
大对象的存储需要对数据转换成2进制数据,通过流的输入输出操作对Blob数据进行存储和读取操作
步骤:
1.存储操作:
创建一个字节输入流,先将Blob对象读取到字节数组中byte[] b;
创建一个Blob 实例Blob pic=conn.createBlob();
创建一个字节输出流接收Blob对象的返回的输出流OutputStream os=pic.setBinaryStream(1);
将文件写到Blob中 os.write(b);//将b中的字节写到pic中
给预编译的Prepare的Statement调用setBlob()方法设置Blob类型数据
执行sql语句
2.读取操作:
执行getBlob()方法获得数据库中存储的Blob类型的数据
//建立输入流,从数据库输入到程序中
InputStream is=b.getBinaryStream();
byte[] bs=new byte[is.available()];//创建一个字节数字存储Blob对象的数据
is.read(bs);//将Blob读取到数组中
建立文件输出流,将字节数组中的数据写到硬盘中
FileOutputStream fos=new FileOutputStream("G:/"+"aaa.jpg");
//将Blob对象写到文件中
步骤:
1.存储操作:
创建一个字节输入流,先将Blob对象读取到字节数组中byte[] b;
创建一个Blob 实例Blob pic=conn.createBlob();
创建一个字节输出流接收Blob对象的返回的输出流OutputStream os=pic.setBinaryStream(1);
将文件写到Blob中 os.write(b);//将b中的字节写到pic中
给预编译的Prepare的Statement调用setBlob()方法设置Blob类型数据
执行sql语句
2.读取操作:
执行getBlob()方法获得数据库中存储的Blob类型的数据
//建立输入流,从数据库输入到程序中
InputStream is=b.getBinaryStream();
byte[] bs=new byte[is.available()];//创建一个字节数字存储Blob对象的数据
is.read(bs);//将Blob读取到数组中
建立文件输出流,将字节数组中的数据写到硬盘中
FileOutputStream fos=new FileOutputStream("G:/"+"aaa.jpg");
//将Blob对象写到文件中