在前面的示例中,我们已将图像插入到数据库表中。现在我们将从表中读取图像。
PostgreSQL 是一个功能强大的开源对象关系数据库系统。它是一个多用户数据库管理系统。它可以在多个平台上运行,包括 Linux、FreeBSD、Solaris、Microsoft Windows 和 Mac OS X。PostgreSQL 由 PostgreSQL Global Development Group 开发。
查看 Java PostgreSQL 教程中的所有 Java PostgreSQL 示例。
使用的技术
我们在本教程中使用以下技术:
- JDK - 1.8 或更高版本
- PostgreSQL- 42.2.9
- IDE - Eclipse 霓虹灯
- JDBC - 4.2
下载 PostgreSQL JDBC 驱动程序
要从 Java 程序连接到 PostgreSQL 数据库服务器,您需要有一个 PostgreSQL JDBC 驱动程序。您可以通过下载页面在 postgresql.org 网站上下载最新版本的驱动程序 。
将 PostgreSQL JDBC 驱动程序 jar 文件添加到项目类路径中。
对于 Maven 用户:
<!-- https://mvnrepository.com/artifact/org.postgresql/postgresql -->
<dependency>
<groupId>org.postgresql</groupId>
<artifactId>postgresql</artifactId>
<version>42.2.9</version>
</dependency>
对于 Gradle 用户:
// https://mvnrepository.com/artifact/org.postgresql/postgresql
compile group: 'org.postgresql', name: 'postgresql', version: '42.2.9'
PostgreSQL 数据库设置
在前面的示例中,我们已将图像插入到数据库表中。现在我们将从表中读取图像。
Java - JDBC PostgreSQL 读取图像示例
package net.javaguides.postgresql.tutorial;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.logging.Level;
import java.util.logging.Logger;
public class JavaPostgreSqlReadImage {
public static void main(String[] args) {
String url = "jdbc:postgresql://localhost:5432/mydb";
String user = "postgres";
String password = "root";
String query = "SELECT data, LENGTH(data) FROM images WHERE id = 1";
try (Connection con = DriverManager.getConnection(url, user, password); PreparedStatement pst = con.prepareStatement(query); ResultSet rs = pst.executeQuery()) {
rs.next();
File myFile = new File("java-logo1.jpg");
try (FileOutputStream fos = new FileOutputStream(myFile)) {
int len = rs.getInt(2);
byte[] buf = rs.getBytes("data");
fos.write(buf, 0, len);
}
} catch (IOException | SQLException ex) {
Logger lgr = Logger.getLogger(JavaPostgreSqlReadImage.class.getName());
lgr.log(Level.SEVERE, ex.getMessage(), ex);
}
}
}
查看 Java PostgreSQL 教程中的所有 Java PostgreSQL 示例 。