使用Java在Postgresql中存储和检索图像

我是Java编程的新手,我正在搜索Java代码以在PostgreSQL中存储图像并检索图像。

在PostgreSQL中,我使用了Bytea Data-type。 图像已存储。 但是当我检索时我得到了NULL。 我无法得到图像。

对此或任何其他建议的任何示例都会有所帮助。

postgresql jdbc文档的第7章涉及存储二进制数据并使用图像(* .gif文件)作为示例。 你可能想读它。

将图像插入数据库(来自上面的链接)

File file = new File("myimage.gif"); FileInputStream fis = new FileInputStream(file); PreparedStatement ps = conn.prepareStatement("INSERT INTO images VALUES (?, ?)"); ps.setString(1, file.getName()); ps.setBinaryStream(2, fis, (int)file.length()); ps.executeUpdate(); ps.close(); fis.close(); 

从数据库中读取图像(也来自上面的链接)

 // Get the Large Object Manager to perform operations with LargeObjectManager lobj = ((org.postgresql.PGConnection)conn).getLargeObjectAPI(); PreparedStatement ps = conn.prepareStatement("SELECT imgoid FROM imageslo WHERE imgname = ?"); ps.setString(1, "myimage.gif"); ResultSet rs = ps.executeQuery(); while (rs.next()) { // Open the large object for reading int oid = rs.getInt(1); LargeObject obj = lobj.open(oid, LargeObjectManager.READ); // Read the data byte buf[] = new byte[obj.size()]; obj.read(buf, 0, obj.size()); // Do something with the data read here // Close the object obj.close(); } rs.close(); ps.close(); 

浏览Java Database Connectivity API,这是一个如何连接到postgres数据库的示例 。 如果有任何疑问..跟进!!