关闭

Java读写LOB

标签: java二进制io数据库
296人阅读 评论(0) 收藏 举报
分类:

除数字、字符串、日期,还会存储大对象(图片,其他数据…)。在SQL中,二进制大对象称为BLOB,字符型大对象称为CLOB。
读取LOB,需要执行select语句,然后再ResultSet上调用getBlob或getClob方法,或者BLOB或CLOB对象。
要从Blob中获取二进制,可以调用getByte或getInutStream。
如果获取了Clob对象,那么久可以通过调用getSubString或getCharacterStream方法来获取其中的字符数据。
如果要将LOB置于数据库中,需要在Connection对象上调用createBlob或createClob,然后获取一个用于该LOB的输出流或写入流,写出数据,并将该对象存储到数据库中。

代码示例:

//从表中获取一张图像
PreparedStatement stat = conn.prepareStatement(“select Cover from boookcovers where ISBN = ?”);
Stat.set(1, isbn);
ResultSet result = stat.executeQuery();
If (result.next()) {
    Blob coverBlob = result.getBlob(1);
Image coverImage = ImageIO.read(coverBlob, getBinaryStream());
}

//存储一张图片
Blob coverBlob = connection.createBlob();
Int offset = 0;
OutputStream out = coverBlob.setBinaryStream(offset); //读取文件
imageIO.write(coverImage, “PGN”, out);
PreparedStatement stat = conn.prepareStatement(“insert into Cover valus(?, ?)”);
Stat.set(1, isbn);
Stat.set(2, coverBlob);
Stat.executeUpdate();
0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:43372次
    • 积分:1106
    • 等级:
    • 排名:千里之外
    • 原创:66篇
    • 转载:13篇
    • 译文:0篇
    • 评论:6条
    最新评论