JAVA将以二进制形式存储在Access数据库中的图片提取出来

原创 2015年07月08日 17:35:50

直接上代码,过多的不解释,看下一篇博文就知道了

import java.io.*;

import java.sql.*;



public class Get_Photo_Record{

	String driver="jdbc:odbc:driver={Microsoft Access Driver (*.mdb)};DBQ=";

	String dataBaseLocation=null;//例子:"d://a1.mdb"



	String url=null;//连接字符串,例子:"jdbc:odbc:driver={Microsoft Access Driver (*.mdb)};DBQ=d://a1.mdb"

	String user=null;

	String password=null;

	String tableName=null;



	ResultSet rs=null;//查询SQL语句后的返回结果

	Connection con=null;

	Statement st=null;



	InputStream in=null;

	OutputStream out = null;



	//构造函数必须抛出异常

	public Get_Photo_Record(String tableName,String dataBaseLocation,String user,String password) throws Exception {

		

			this.tableName=tableName;

			this.dataBaseLocation=dataBaseLocation;

			this.user=user;

			this.password=password;



			url=driver+dataBaseLocation;//构建连接字符串

		  Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");//加载驱动

			con=DriverManager.getConnection(url,user,password);//建立连接

			System.out.println("数据库连接成功");

			String string="select picture from "+tableName;//构造SQL语句

			st=con.createStatement();

			rs=st.executeQuery(string);//执行SQL语句

			rs.next();//光标指向第一行,最开始指向的是第0行,这段代码值用来查询第一行的记录,查询其他记录可以使得rs.next()循环或者SQL语句中指定行数

			in=rs.getBinaryStream("picture");//从rs在读取picture放入InputStream

			byte[] b=new byte[61858764];

			in.read(b);//从InputStream对象中读取数据放进byte数组中

			//rs.getString(1)得到查询的第一个字段的值

			out=new FileOutputStream("C://Users//fujiaxiaoshao//Desktop//"+rs.getString(1)+".jpg");

			out.write(b);//将文件输出,内容则为byte数组里边的数据

			out.flush();

			System.out.println("照片绘制成功");



			in.close();

			out.close();

			System.out.println("文件输入输出流关闭");

			

			rs.close();

			st.close();

			con.close();

			System.out.println("数据库连接关闭");	

	}



}


版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

Java+Access存取图片

1.将图片存入数据库 try  {       File f=new File(photopath);//photopath为图片的路径     FileInputStream fis=new Fil...

JAVA将图片以二进制形式存入Access数据库

下边是一个将图片以二进制文件形式存到Access数据库的名为Insert_Photo_Record的类: 由于这个类值负责完成插入图片,所以没有为它书写方法,它的所有工作在构造函数中完成。下边是代码,...

JDBC接口核心的API、Statement接口详解

一、JDBC接口核心的API 在JDK API的java.sql.* 和 javax.sql.*下面查看 1、Driver接口: 表示java驱动程序接口。所有的具体的数据库厂商要来实现此接口...

用(java或plsql的存储过程)将文件以二进制的形式写入到oracle数据库(适用dwg格式文件)

java  将文件以二进制的形式导入到oracle数据库的blob或long raw格式的字段中。   package com.dsit.zsdw.test; import java.io.Fi...
  • angugu
  • angugu
  • 2012年06月13日 17:19
  • 2021

Java中如何将以byte数组给出的数据转换为double数组形式

问题描述 今天编程的时候遇到1个问题 需要从一个二进制文件中读取double[]的数据 我们使用的编程语言是Java语言 经过查阅资料之后发现:Java似乎不能直接通过double[]的指针直接读...
  • songyuc
  • songyuc
  • 2016年03月30日 12:26
  • 553

存储图片到access数据库中

开发环境 VS2010+Access 在access数据库中新建数据库 并新建一张表 建两个字段 IMAGENAME,IMANGEBINARY 新建工程->winform程序 在窗体上 拖拽一个...

将图片二进制流存储到数据库中

  • 2017年09月04日 22:59
  • 191KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:JAVA将以二进制形式存储在Access数据库中的图片提取出来
举报原因:
原因补充:

(最多只允许输入30个字)