java blob 转 byte
时间: 2023-08-29 07:13:32 浏览: 28
以下是将 Java Blob 转换为字节数组的示例代码:
```java
Blob blob = resultSet.getBlob("image");
byte[] bytes = blob.getBytes(1, (int) blob.length());
```
上面的代码使用了 `getBlob()` 方法获取 Blob 对象,然后通过 `getBytes()` 方法将 Blob 转换为字节数组。
注意,`getBytes()` 方法的第一个参数是起始位置,一般为 1,第二个参数是要读取的字节数,一般为 Blob 的长度。
相关问题
java blob转byte_Clob,Blob,InputStream,byte 互转
Java 中 Blob 和 Clob 是 JDBC API 中的两种数据类型,Blob 表示二进制数据,Clob 表示文本数据。InputStream 和 byte[] 则是 Java 中常用的二进制数据处理方式。
下面是 Blob 和 byte[] 之间的相互转换:
1. Blob 转 byte[]
```java
Blob blob = resultSet.getBlob("blob_column");
byte[] data = blob.getBytes(1, (int) blob.length());
```
2. byte[] 转 Blob
```java
byte[] data = ...;
Blob blob = connection.createBlob();
blob.setBytes(1, data);
```
下面是 Blob 和 InputStream 之间的相互转换:
1. Blob 转 InputStream
```java
Blob blob = resultSet.getBlob("blob_column");
InputStream inputStream = blob.getBinaryStream();
```
2. InputStream 转 Blob
```java
InputStream inputStream = ...;
Blob blob = connection.createBlob();
OutputStream outputStream = blob.setBinaryStream(1);
byte[] buffer = new byte[4096];
int bytesRead = -1;
while ((bytesRead = inputStream.read(buffer)) != -1) {
outputStream.write(buffer, 0, bytesRead);
}
```
下面是 Blob 和 Clob 之间的相互转换:
1. Blob 转 Clob
```java
Blob blob = resultSet.getBlob("blob_column");
Clob clob = connection.createClob();
Writer writer = clob.setCharacterStream(1);
InputStream inputStream = blob.getBinaryStream();
byte[] buffer = new byte[4096];
int bytesRead = -1;
while ((bytesRead = inputStream.read(buffer)) != -1) {
writer.write(new String(buffer, 0, bytesRead, "UTF-8"));
}
```
2. Clob 转 Blob
```java
Clob clob = resultSet.getClob("clob_column");
Blob blob = connection.createBlob();
OutputStream outputStream = blob.setBinaryStream(1);
Reader reader = clob.getCharacterStream();
char[] buffer = new char[4096];
int charsRead = -1;
while ((charsRead = reader.read(buffer)) != -1) {
outputStream.write(new String(buffer, 0, charsRead).getBytes("UTF-8"));
}
```
java string转blob
以下是将Java中的String转换为Blob的示例代码:
```java
String str = "Hello, world!";
byte[] bytes = str.getBytes(); // 将字符串转换为字节数组
Blob blob = new SerialBlob(bytes); // 将字节数组转换为Blob
```
注意,这里使用了`SerialBlob`类来创建Blob对象。如果你使用的是JDBC驱动程序支持JDBC 4.2规范,可以使用`javax.sql.rowset.serial.SerialBlob`类。如果你使用的是旧版本的JDBC驱动程序,可以使用`oracle.sql.BLOB`或`oracle.sql.CLOB`类。