JDBC存取二进制文件示例
2014-11-12 13:59
281 查看
本程序实现了将图片文件转化成二进制的形式,通过JDBC进行数据库存储的功能。
程序分为三个文件,ConnUtil.java为数据库连接,PutFile.java为向数据库中存入二进制图片数据,GetFile.java为从数据库中取出二进制数据并保存成本地图片文件。代码如下:
数据库连接:
向数据库中存入二进制图片数据:
数据库中取出二进制数据并保存成本地图片文件:
程序分为三个文件,ConnUtil.java为数据库连接,PutFile.java为向数据库中存入二进制图片数据,GetFile.java为从数据库中取出二进制数据并保存成本地图片文件。代码如下:
数据库连接:
import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; public class ConnUtil { public static Connection getConn() { Connection conn = null; try { Class.forName("org.postgresql.Driver"); // 驱动 String url = "jdbc:postgresql://192.168.8.103:2345/swfit"; // 连接数据库的url try { conn = DriverManager.getConnection(url, "super", "111111"); // super 为数据库用户名,111111为密码 } catch (SQLException e) { e.printStackTrace(); } } catch (ClassNotFoundException e) { e.printStackTrace(); } return conn; } }
向数据库中存入二进制图片数据:
import java.io.FileInputStream; import java.sql.*; import java.io.File; public class PutFile { public static void main(String args[]) { Connection conn = null; PreparedStatement psmd = null; String sql = null; try { conn = ConnUtil.getConn(); File file = new File("F:\\1.jpg");// 要转换的文件 FileInputStream inputStream = new FileInputStream(file);// 将文件按二进制存储在一个字段内 // CREATE TABLE images (imgname text, img bytea); sql = " insert into images values(?,?)"; psmd = conn.prepareStatement(sql); psmd.setString(1, file.getName()); psmd.setBinaryStream(2, inputStream, (int) file.length()); int rs = psmd.executeUpdate(); if (rs < 0) { System.out.println("存入数据失败!!!"); } else { System.out.println("存入数据成功!!!"); } } catch (Exception e) { e.printStackTrace(); } if (psmd != null) { try { psmd.close(); } catch (SQLException e) { e.printStackTrace(); } } if (conn != null) { try { conn.close(); } catch (SQLException e) { e.printStackTrace(); } } } }
数据库中取出二进制数据并保存成本地图片文件:
import java.io.FileOutputStream; import java.io.OutputStream; import java.sql.*; public class GetFile { public static void main(String args[]) { Connection conn = null; PreparedStatement psmd = null; String sql = null; OutputStream out = null; try { conn = ConnUtil.getConn(); sql = " SELECT img FROM images WHERE imgname = ?"; psmd = conn.prepareStatement(sql); psmd.setString(1, "1.jpg"); ResultSet rs = psmd.executeQuery(); while (rs.next()) { byte[] imgBytes = rs.getBytes(1); // 实例化OutputStream对象,在f盘创建一个图片文件 out = new FileOutputStream("f:\\2.jpg"); // 将文件输出,内容则为byte数组里面的数据 out.write(imgBytes); out.flush(); System.out.println("获取数据成功!!!"); } } catch (Exception e) { e.printStackTrace(); } if (psmd != null) { try { psmd.close(); } catch (SQLException e) { e.printStackTrace(); } } if (conn != null) { try { conn.close(); } catch (SQLException e) { e.printStackTrace(); } } } }
相关文章推荐
- JDBC存取二进制文件示例
- 二进制文件存取示例(VB&VBA)
- T-SQL 二进制文件存取示例
- 20160408javaweb之JDBC 大二进制和大文件存取
- 二进制文件存取示例(T-SQL)
- 复习课程jdbc:使用配置文件properties进行连接数据库,数据库存取图片,批处理,时间戳,事物回滚等等
- 利用DataSet存取SQL Server中的二进制文件
- C#二进制存取图片文件
- C#存取SQL Server数据库之一:二进制存取图片文件
- Java读写二进制文件示例
- Android SQLite 数据库 存取 BLOB 二进制 文件
- C#以二进制方式存取文件
- Java -- JDBC mysql读写大数据,文本 和 二进制文件
- 图像文件的二进制存取(转载)
- Java -- JDBC mysql读写大数据,文本 和 二进制文件
- curl不使用文件存取cookie php使用curl获取cookie示例
- 利用DataSet存取SQLServer中的二进制文件
- 添加二进制文件到数据库示例
- 使用ADO GetChunk/AppendChunk 数据库存取二进制文件(如程序,图象等)
- c# 存取结构体二进制文件