PostgreSQL操作大对象的三种方法
发布时间:2020-12-13 18:00:24 所属栏目:百科 来源:网络整理
导读:PostgreSQL 中有 2 种数据类型可以存储大对象: bytea 和 oid 两种。而利用 bytea 操作时候也有 2 种不同的方法 方法一:在 JAVA 中利用 byte[] 读取 bytea 类型( image 为 bytea 类型) byte [] imgBytes = rs.getBytes( "image" ); Image image = Toolkit
PostgreSQL中有2种数据类型可以存储大对象:bytea和oid两种。而利用bytea操作时候也有2种不同的方法
方法一:在JAVA中利用byte[]读取bytea类型(image为bytea类型) byte[] imgBytes = rs.getBytes("image");
Image image = Toolkit.getDefaultToolkit().createImage(imgBytes);
方法二:在JAVA中利用InputStream读取bytea类型(image为bytea类型) InputStream stream = rs.getBinaryStream("image");
Image image = ImageIO.read(stream);
方法三:利用oid类型(picture 为oid类型)
conn.setAutoCommit(false); LargeObjectManager lobj = ((org.postgresql.PGConnection) conn) .getLargeObjectAPI(); PreparedStatement ps = conn .prepareStatement("SELECT picture FROM resume WHERE /"NAME/"=?"); ps.setString(1,"myimage.gif"); ResultSet rs = ps.executeQuery(); if (rs != null) { while (rs.next()) { // 打开大对象读 int oid = rs.getInt(1); LargeObject obj = lobj.open(oid,LargeObjectManager.READ); // 读取数据 byte buf[] = new byte[obj.size()]; obj.read(buf,obj.size()); obj.close(); } rs.close(); } ps.close(); conn.commit(); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |