2013-06-26 102 views
8

1.如何在java中创建BLOB对象?
2.如何从db中设置BLOB值?
3.如何在数据库中设置BLOB值?
如何在java中创建BLOB对象?

我已创建像

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

的BLOB对象,但它给了我error..So请任何一个帮助我。 在此先感谢。

+0

为什么你需要创建一个BLOB对象?或者你想读取数据库中的BLOB数据? – NINCOMPOOP

+0

我正在从数据库中获取一个BLOB值,并且我想将这个值保存在BLOB对象中,这就是为什么我想创建一个对象。再次保存后,我想将该值保存在另一个数据库中,那个时候我想获得该值。我正在使用spring框架。 – vijayk

+0

[使用Java为DB2和Oracle插入BLOB]可能的重复(http://stackoverflow.com/questions/16462060/insert-blob-using-java-for-both-db2-and-oracle) –

回答

20

1)创建BLOB使用Connection.createBlob

2)写入BLOB到DB使用PreparedStatement.setBlob

3)来读取数据库使用ResultSet.getBlob

BLOB假设你有表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); 
+0

确定请参阅已更新回答 –