1.插入占位数据:
insert into TEST_CUICF(t1,t2) values(12,empty_blob())
2.获得占位数据:
select t1,t2 from TEST_CUICF t for update
BLOB oracleBlobMockIn = oracleBlobMockIn = control.createMock(BLOB.class);
...
oracleBlobMockIn.getBinaryStream();
expectLastCall().andReturn(new FileInputStream(inPdfFile)).times(1);
...
ResultSet rs = st.executeQuery(sql);
BLOB oracleBlobMockOut = null;
if (rs.next()) {
rs.getString("t1");
oracleBlobMockOut = (BLOB) rs.getBlob("t2");
}
...
control.replay();
Watermark.addPdfWatermark(oracleBlobMockIn, oracleBlobMockOut, markImagePath);
control.verify();
control.reset();
3.应用 输出流 (增加水印处理)
public static void addPdfWatermark(BLOB inputPdfFileBlob, BLOB outPdfFileBlob, String markImagePath) throws Exception {
if (null == WATERMARK_IMAGE) {
logger.info("watermark_image inital~~");
WATERMARK_IMAGE = Image.getInstance(markImagePath);
WATERMARK_IMAGE.setAbsolutePosition(10, 250);
}
PdfReader reader = null;
PdfStamper stamp = null;
try {
reader = new PdfReader(inputPdfFileBlob.getBinaryStream(), "PDF".getBytes());
stamp = new PdfStamper(reader, outPdfFileBlob.getBinaryOutputStream()); //获得输出流
int numberOfPages = reader.getNumberOfPages();
for (int i = 1; i <= numberOfPages; i++) {
PdfContentByte under = stamp.getUnderContent(i);
under.addImage(WATERMARK_IMAGE);
}
} finally {
stamp.close();
}
}
4.关闭连接
con.commit();
con.close();
相关推荐
在Java应用程序中读取Oracle数据库中的BLOB字段通常涉及到几个步骤:建立数据库连接、执行查询语句、获取结果集并从中提取BLOB数据,最后将这些数据写入到文件中。 ##### 3.1 加载Oracle驱动 在Java程序中使用...
处理BLOB字段通常涉及将这些大型二进制对象插入到数据库中以及从数据库中检索它们。本文将深入探讨如何使用Java中的PreparedStatement和ResultSet对象来有效地处理BLOB字段。 ### 插入BLOB字段 在Java中,使用...
1. **插入空BLOB**:首先,创建一个空的BLOB对象,然后将其插入到数据库表中。 ```sql INSERT INTO xxx_table (A, B, C) VALUES (empty_blob(), 'xxx', 'yyyy'); ``` 2. **更新BLOB数据**: - 设置`Connection`...
2. **插入记录:** 将Blob字段与其它字段一起插入到表中。 3. **写入文件内容:** 将文件内容写入到Blob字段中。 ##### 示例代码(上传部分): ```java public static void uploadBlob(Connection cn, MmsNewsVO ...
这篇博客文章“JAVA操作Oracle blob类型”将深入探讨如何在Java应用程序中有效地管理和操作Oracle数据库中的BLOB字段。本文将详细讲解相关知识点,包括连接数据库、插入BLOB数据、查询BLOB数据以及更新和删除BLOB...
在这个场景中,我们关注的是如何使用Java Server Pages(JSP)来操作MySQL数据库中的Blob(Binary Large Object)字段,这是一个用于存储大容量二进制数据如图片、文档或音频文件的特殊字段类型。以下是关于这个主题...
- 准备SQL语句,将文件名和一个空的Blob对象插入到数据库表中。 - 执行SQL语句并提交事务。 3. **更新Blob数据**: - 通过`SELECT contexts FROM cbh WHERE filename = ? FOR UPDATE`语句获取待更新的Blob字段。 ...
【Java读写Oracle BLOB字段】在Java编程中,与Oracle数据库交互时,有时需要处理存储大对象(LOB)的数据,比如图片、音频或大型文本文件。BLOB类型用于存储二进制大对象,本文将详细介绍如何使用Java来读取和写入...
2. **PreparedStatement**:在Spring中,通常使用PreparedStatement来插入或更新包含BLOB字段的记录。预编译的SQL语句可以有效地防止SQL注入,并允许我们用参数替换值,包括BLOB对象。 3. **Blob对象**:在Java的...
5. **数据库操作**:在数据库中插入和检索Blob类型的字段,通常需要使用SQL语句或者ORM框架。例如,使用Java的JDBC API,可以创建PreparedStatement来执行INSERT语句,然后使用OutputStream将BASE64解码后的字节数组...
为了实现这一目标,我们将从创建数据库表开始,然后逐步介绍如何使用Java读取图片文件并将其存储到Oracle数据库中的BLOB字段。 #### 二、准备工作 1. **安装Oracle数据库**:确保已经安装了Oracle数据库,并且拥有...
最后,通过预编译的SQL语句插入到数据库中。 要从数据库中读出文件,可以使用以下Java代码: ```java public void readBlob() throws SQLException, IOException { String sql = "SELECT image FROM blobmodel ...
在Java开发中,有时我们需要存储二进制大数据,如图片、视频或文档,这时Oracle数据库中的Blob类型就显得尤为重要。Blob(Binary Large Object)是Oracle用来存储大对象数据的类型,它可以高效地处理大量的二进制...
为了处理BLOB数据,数据库表需要有一个BLOB类型的字段,比如`image_data`。在插入数据时,需要使用PreparedStatement的`setBinaryStream()`方法将文件内容设置为SQL语句的参数。在查询时,可以使用`getBinaryStream...
在JAVA中,操作Oracle数据库中的BLOB和CLOB类型字段是一种常见的需求。然而,网络上关于JAVA对Oracle中BLOB、CLOB类型字段的操作说明往往不够全面、不够准确,甚至有的简直就是胡说八道。因此,本文旨在总结JAVA对...
- 使用Spring的DAO或Service层接口,通过Hibernate的Session对象将Blob对象插入到数据库对应的表中。这通常涉及到一个带有Blob参数的SQL语句,如`INSERT INTO table (id, blob_column) VALUES (?, ?)`,然后使用`...
- **插入空BLOB对象:** - 创建SQL语句,例如:`"insert into BLOB_IMG values(103, empty_blob())";` - 使用`Statement`或`PreparedStatement`执行该SQL语句。 - **读取文件并写入BLOB对象:** - 获取待插入的...
在Java开发中,有时我们需要将二进制数据如图片、文档等存储到关系型数据库中,Oracle数据库提供了Blob数据类型来处理这样的大对象(Large Object)数据。本篇将详细介绍如何利用JDBC和Hibernate框架将Blob数据写入...
服务器需要创建一个数据库连接,使用PreparedStatement预编译SQL语句,然后将接收到的文件内容插入到BLOB(Binary Large Object)类型的字段中。 6. **异常处理**:在整个文件上传过程中,必须充分考虑并处理可能...
在Java Web应用中,我们经常需要处理图像数据,例如用户上传的头像或者产品图片等。将这些图片存储到MySQL数据库中是一种常见的做法,尤其是在早期的Web开发中。本篇文章将详细阐述如何在Java Web环境中实现从MySQL...