13
  1. 如何在 Java 中创建 BLOB 对象?
  2. 如何从 DB 中设置 BLOB 值?
  3. 如何在 DB 中设置 BLOB 值?

我已经创建了这样的 BLOB 对象:

byte [] fileId = b.toByteArray();
Blob blob = new SerialBlob(fileId);

但这给了我一个错误。

4

1 回答 1

22
  1. 创建 BLOB 使用Connection.createBlob

  2. 将 BLOB 写入数据库使用PreparedStatement.setBlob

  3. 从数据库读取 BLOB 使用ResultSet.getBlob

假设您有t1带有 BLOB 列的表b1

Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/test", "root", "root");
Blob b1 = conn.createBlob();
b1.setBytes(1, new byte[10]); // first position is 1. Otherwise you get: Value of offset/position/start should be in the range [1, len] where len is length of Large Object[LOB]

PreparedStatement ps = conn.prepareStatement("update t1 set c1 = ?");
ps.setBlob(1, b1);
ps.executeUpdate();

Statement st = conn.createStatement();
ResultSet rs = st.executeQuery("select c1 from t1");
Blob b2 = rs.getBlob(1);
于 2013-06-26T05:30:53.340 回答