穹顶之下

每个人都生活在穹顶之下,努力的生存

Java读写LOB

除数字、字符串、日期,还会存储大对象(图片,其他数据…)。在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();
阅读更多
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_28301007/article/details/52351253
个人分类: 数据库 Java&JavaWeb
上一篇Toast.makeText(消息模式)的几种用法
下一篇jQuery、AJAX基础学习笔记
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭