//JDBC操作二进制类型数据(如图片或压缩包)也是通过IO字节流形式操作
public class BlobTest {
public static void main(String[] args) throws SQLException, IOException {
// create();
read();
}
//查询
static void read() throws SQLException, IOException {
Connection conn = null;
Statement st = null;
ResultSet rs = null;
try {
// 2.建立连接
conn = JdbcUtils.getConnection();
// conn = JdbcUtilsSing.getInstance().getConnection();
// 3.创建语句
st = conn.createStatement();
// 4.执行语句
rs = st.executeQuery("select big_bit from blob_test");
// 5.处理结果
while (rs.next()) {
// Blob blob = rs.getBlob(1);
// InputStream in = blob.getBinaryStream();
InputStream in = rs.getBinaryStream("big_bit");
File file = new File("IMG_0002_bak.jpg");
OutputStream out = new BufferedOutputStream(
new FileOutputStream(file));
byte[] buff = new byte[1024];
for (int i = 0; (i = in.read(buff)) > 0;) {
out.write(buff, 0, i);
}
out.close();
in.close();
}
} finally {
JdbcUtils.free(rs, st, conn);
}
}
//添加:
static void create() throws SQLException, IOException {
Connection conn = null;
PreparedStatement ps = null;
ResultSet rs = null;
try {
// 2.建立连接
conn = JdbcUtils.getConnection();
// conn = JdbcUtilsSing.getInstance().getConnection();
// 3.创建语句
String sql = "insert into blob_test(big_bit) values (?) ";
ps = conn.prepareStatement(sql);
File file = new File("IMG_0002.jpg");
InputStream in = new BufferedInputStream(new FileInputStream(file));
ps.setBinaryStream(1, in, (int) file.length());
// 4.执行语句
int i = ps.executeUpdate();
in.close();
System.out.println("i=" + i);
} finally {
JdbcUtils.free(rs, ps, conn);
}
}
}
分享到:
相关推荐
在关系型数据库如MySQL、PostgreSQL、Oracle和SQL Server中,BLOB是一个特殊的数据类型,用于存储大量的二进制数据,例如图片、音频或视频文件。在SQL Server中,这种类型被称为`VARBINARY(MAX)`,它允许存储最多2^...
4. **跨数据库操作**:在SQL Server和Oracle之间迁移或共享图片数据时,可能需要使用数据迁移工具或编程接口,如ODBC或JDBC,将二进制流从一个数据库复制到另一个。 5. **性能考虑**: - **存储效率**:存储二进制...
在MySQL数据库中存储二进制大对象(BLOB)数据,如图片,是常见的做法,因为这种方式便于管理和检索。在本示例中,我们将探讨如何查询包含二进制图片数据的MySQL数据库,并通过JSP(JavaServer Pages)展示这些图片...
3. **准备数据库连接和SQL语句**:连接到数据库,创建一个可以存储二进制数据的表,通常会有一个BLOB(Binary Large Object)类型的字段来存储图片。编写一个SQL插入语句,用于将图片的字节数组存入数据库。 4. **...
在IT领域,数据库常用于存储各种类型的数据,包括文本、数字以及图像等非...这个过程涉及到数据库操作、二进制数据处理以及图片编码等多个技术点,理解并掌握这些知识对于开发涉及数据库存储和检索图片的应用至关重要。
4. **创建数据表**:在Oracle数据库中创建一个专门用来存储图片二进制流的表,通常包含一个字段用于存储二进制数据,比如`BLOB`类型。 5. **持久化到数据库**:使用Hibernate或JDBC API将二进制流写入数据库。在...
- **BLOB** 类型用于存储二进制数据,有TINYBLOB、BLOB、MEDIUMBLOB和LONGBLOB四种,分别可以存储不同大小的二进制数据。 - **TEXT** 类型则用于存储非二进制的大文本数据,有TINYTEXT、TEXT、MEDIUMTEXT和LONG...
- **数据分片**:ShardingSphere-JDBC支持基于数据分片的水平扩展,通过将大表拆分成多个小表,分布于不同的数据库实例上,从而提高查询和处理性能。它可以根据业务需求进行分片策略配置,如按时间、范围、哈希值等...
Oracle数据库提供了BLOB(Binary Large Object)数据类型,专门用于存储大对象,如图像、音频文件或任何其他二进制数据。 首先,我们需要了解二进制数据的存储过程。在Java或Python等编程语言中,我们可以读取图片...
4. **二进制类型**:如`BLOB`(二进制大对象)、`BINARY`(二进制字符串)、`VARBINARY`(可变长度二进制字符串),在JDBC中通常映射为`java.sql.Blob`和`byte[]`。 5. **NULL类型**:`NULL`表示字段值为空,它在...
综上所述,从SQL数据库中读取二进制图片并生成本地文件是一项常见的任务,涉及数据库操作、二进制数据处理和文件I/O。通过理解这些基本概念和技术,你可以有效地管理和利用存储在数据库中的图像资源。在给定的压缩包...
4. 二进制类型 RAW 对应的 JDBC 类型是 java.sql.Types.BINARY,Java 类型是 byte[]。LONG_RAW 对应的 JDBC 类型是 java.sql.Types.LONGVARBINARY,Java 类型也是 byte[]。 5. 大对象类型 BLOB 对应的 JDBC ...
- **SQL Server**: 使用`BINARY`和`VARBINARY`类型,但不支持`BIT`作为二进制数据类型。 - **Oracle**: 支持`RAW`类型,类似于`BINARY`;不支持`BIT`类型。 - **DB2**: 支持`BINARY`和`BIT`类型。 - **JDBC**: `...
在 SQL Server 中,binary 是一个二进制类型,用于存储二进制数据。在 Java 中,binary 对应的数据类型是 byte 数组。 bit 在 SQL Server 中,bit 是一个布尔类型,用于存储布尔值。在 Java 中,bit 对应的数据...
// 自己简单封装了jdbc操作 fis.close(); out.close(); return result; } ``` 这段代码首先创建一个Blob对象,然后从文件系统读取文件,并将其内容写入Blob对象。最后,通过预编译的SQL语句插入到数据库中。 ...
在Oracle数据库中,CLOB可以用于存储非二进制的文本数据。 1. 插入CLOB数据: 在Java中,我们通常使用PreparedStatement来插入CLOB数据。首先,创建一个Clob对象,并将待插入的文本数据写入到Clob对象中,然后在SQL...
- **解释**:MySQL 的二进制类型 `BINARY` 映射至 JDBC 中同样类型的 `BINARY`。 - **注意事项**:该类型用于存储固定长度的二进制数据,长度通常不超过 8000 字节。在映射过程中需要注意保持原始数据的完整性。 ...
BLOB是一种二进制大对象,是数据库中的一种数据类型,用于存储大规模的二进制数据,如图片、音频、视频等。 上传图片 上传图片是指将图片文件从客户端上传到服务器端的过程。在上面的代码中,我们可以看到上传图片...
5. **二进制类型**: - `BINARY`、`VARBINARY` 和 `LONGVARBINARY`:在 SQL 标准中定义的二进制数据类型,映射为 `java.sql.Types.BINARY`、`java.sql.Types.VARBINARY` 和 `java.sql.Types.LONGVARBINARY`。 - `...
这个“apache-activemq-5.15.15二进制包,安装包”包含了运行和配置ActiveMQ所需的所有组件,方便用户在本地计算机或服务器上快速部署和使用。该版本5.15.15是Apache ActiveMQ的一个稳定版本,提供了许多增强的功能...