Java 工具类实现 oracle 数据库读取blob照片后重命名保存到本地目录
时间: 2023-12-12 17:05:20 浏览: 27
你可以使用以下的 Java 工具类实现将 Oracle 数据库中的 Blob 类型的照片读取出来,并且重命名保存到本地目录:
```java
import java.io.File;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.sql.Blob;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
public class OracleBlobImageSaver {
public static void main(String[] args) {
String url = "jdbc:oracle:thin:@localhost:1521:XE"; // Oracle 数据库连接URL
String username = "your_username"; // 数据库用户名
String password = "your_password"; // 数据库密码
String sql = "SELECT photo_blob, photo_name FROM photo_table"; // 查询照片的SQL语句
String saveDir = "C:/path/to/save/directory/"; // 保存照片的本地目录
try (Connection conn = DriverManager.getConnection(url, username, password);
PreparedStatement stmt = conn.prepareStatement(sql);
ResultSet rs = stmt.executeQuery()) {
while (rs.next()) {
Blob blob = rs.getBlob("photo_blob");
String fileName = rs.getString("photo_name");
File file = new File(saveDir + fileName);
try (InputStream in = blob.getBinaryStream();
FileOutputStream out = new FileOutputStream(file)) {
byte[] buffer = new byte[1024];
int bytesRead;
while ((bytesRead = in.read(buffer)) != -1) {
out.write(buffer, 0, bytesRead);
}
System.out.println("Photo saved: " + file.getAbsolutePath());
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
```
需要注意的是,你需要将 `your_username` 和 `your_password` 替换为你的数据库的实际用户名和密码。另外,你需要根据你的实际情况修改连接字符串 `url`、查询语句 `sql` 和保存目录 `saveDir`。