BLOB 字段,英文 binary large object 的缩写,意即:二进制大对象,这种字段类型主用用于存储二进制文件的容器,至于存储的二进制是内容是什么,要根据用户的需要来宝,比如:可以是一个BMP图像,也可以是一段影像,也可以是一个文件等等。
至于blob字段的存储,要根据不同数据库来定,有时还要根据编程语言来定。
oracle如下 数据库中提供了两种字段类型 Blob 和 Clob 用于存储大型字符串或二进制数据(如)。 Blob 采用单字节存储,适合保存二进制数据,如文件。 Clob 采用多字节存储,适合保存大型文本数据。 首先创建一个空 Blob/Clob 字段,再从这个空 Blob/Clob字段获取游标,例如下面的代码: PreparedStatement ps = connprepareStatement( " insert into PICTURE(image,resume) values(,) " ); // 通过oralcesqlBLOB/CLOBempty_lob()构造空Blob/Clob对象 pssetBlob( 1 ,oraclesqlBLOBempty_lob()); pssetClob( 2 ,oraclesqlCLOBempty_lob()); psexcuteUpdate(); psclose(); // 再次对读出Blob/Clob句柄 ps = connprepareStatement( " select image,resume from PICTURE where id= for update " ); pssetInt( 1 , 100 ); ResultSet rs = psexecuteQuery(); rsnext(); oraclesqlBLOB imgBlob = (oraclesqlBLOB)rsgetBlob( 1 ); oraclesqlCLOB resClob = (oraclesqlCLOB)rsgetClob( 2 ); // 将二进制数据写入Blob FileInputStream inStream = new FileInputStream( " c://imagejpg " ); OutputStream outStream = imgBlobgetBinaryOutputStream(); byte [] buf = new byte [ 10240 ]; int len; while (len = inStreamread(buf) > 0 ) { outStreamwrite(buf, 0 ,len); } inStreamclose(); outStreamcloese(); // 将字符串写入Clob resClobputString( 1 , " this is a clob " ); // 再将Blob/Clob字段更新到数据库 ps = connprepareStatement( " update PICTURE set image= and resume= where id= " ); pssetBlob( 1 ,imgBlob); pssetClob( 2 ,resClob); pssetInt( 3 , 100 ); psexecuteUpdate(); psclose()
以上就是关于数据库中的Blob是怎么存储的啊全部的内容,包括:数据库中的Blob是怎么存储的啊、如何将文件转成流存入数据库、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)