当前位置: 技术问答>java相关
请问如何将字节流转换为Blob?(100)
来源: 互联网 发布时间:2015-10-03
本文导语: 一般是往数据表中存放图象或字符文件。 | if (conn == null) throw new SQLException("database connection is not availble!"); String strSQLUpdate= "update demo set blobTest =EMPTY_BLOB() where id=1"; String strSQL...
一般是往数据表中存放图象或字符文件。
|
if (conn == null)
throw new SQLException("database connection is not availble!");
String strSQLUpdate= "update demo set blobTest =EMPTY_BLOB() where id=1";
String strSQL= " select blobTest from demo where id=1 for update";
try
{
PreparedStatement tmpstmt=conn.prepareStatement(strSQLUpdate);
tmpstmt.executeUpdate();
tmpstmt=conn.prepareStatement(strSQL);
ResultSet tmprlt=tmpstmt.executeQuery();
while (tmprlt.next())
{
java.sql.Blob javaBlob = tmprlt.getBlob(blobField);
oracle.sql.BLOB tmpblob = (oracle.sql.BLOB)javaBlob;
OutputStream os= tmpblob.getBinaryOutputStream();
if(blob != null)
os.write(blob);
os.close();
}
if (oldcommit==true)
{
conn.commit();
}
}
catch(Exception e)
{
throw e;
}
finally
{
}
throw new SQLException("database connection is not availble!");
String strSQLUpdate= "update demo set blobTest =EMPTY_BLOB() where id=1";
String strSQL= " select blobTest from demo where id=1 for update";
try
{
PreparedStatement tmpstmt=conn.prepareStatement(strSQLUpdate);
tmpstmt.executeUpdate();
tmpstmt=conn.prepareStatement(strSQL);
ResultSet tmprlt=tmpstmt.executeQuery();
while (tmprlt.next())
{
java.sql.Blob javaBlob = tmprlt.getBlob(blobField);
oracle.sql.BLOB tmpblob = (oracle.sql.BLOB)javaBlob;
OutputStream os= tmpblob.getBinaryOutputStream();
if(blob != null)
os.write(blob);
os.close();
}
if (oldcommit==true)
{
conn.commit();
}
}
catch(Exception e)
{
throw e;
}
finally
{
}
|
看你用啥了
Delphi里有 Tblobfield 类 用类型转换 先将文件数据保存到流Tstream中
将Tfield 类型 as 成 Tblobfield 类 ,调用 Tblobfield的loadtostream 方法就行了, studio.net中有一种sql的参数类型是流类型可以将流赋给它,然后用insert 就行了,具体在那个名称空间中自己查,好象是sqlconnection对象和一个sql数据操作对象,记不清了自己查吧
Delphi里有 Tblobfield 类 用类型转换 先将文件数据保存到流Tstream中
将Tfield 类型 as 成 Tblobfield 类 ,调用 Tblobfield的loadtostream 方法就行了, studio.net中有一种sql的参数类型是流类型可以将流赋给它,然后用insert 就行了,具体在那个名称空间中自己查,好象是sqlconnection对象和一个sql数据操作对象,记不清了自己查吧
|
你使用的数据库的驱动中会带有一个它的blob的实现,java提供的只是一个接口,故此你要看你的数据库的帮助文档,比如oracle就是用BLOB类实现了blob.用BLOB读写数据流.
|
严重关注