如何在sql数据库中存储二进制文件?

时间:2009-05-13 15:53:02

标签: java sql

我有一个用于存储excel文件的varbinary列。我需要使用当前在我的文件系统上的不同xls文件的内容来更新此列。

给定java.sql.Connection,我该如何更新行?

我们正在使用sql server 2005。

4 个答案:

答案 0 :(得分:5)

我最终做了以下事情:

PreparedStatement st = conn.prepareStatement("update MyTable set binaryData = ? where id= 9");
st.setBinaryStream(1, new FileInputStream(file), (int)file.length());
st.execute();

答案 1 :(得分:2)

使用java.util.Connection和正确的SQL,你可以创建一个合适的java.sql.PreparedStatement(我不使用SQL Server,所以你最好自己编写SQL)。

您可以使用从xls文件中读取的字节数据创建java.sql.Blob。

在PreparedStatement上调用.setBlob(Blob),然后执行它。

我没有为你编写代码,但这应该是基础知识。

答案 2 :(得分:0)

将字节数组传递给BLOB字段。

答案 3 :(得分:-2)

在旧版本的Java中,您可以尝试

obj.setObject("@somefield", some_data);