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

原创 2015年07月08日 16:41:53

下边是一个将图片以二进制文件形式存到Access数据库的名为Insert_Photo_Record的类:

由于这个类值负责完成插入图片,所以没有为它书写方法,它的所有工作在构造函数中完成。下边是代码,会在需要注释的地方添加注释


import java.sql.*;
import java.io.*;
import java.util.Arrays;
public class Insert_Photo_Record{
	String driver="jdbc:odbc:driver={Microsoft Access Driver (*.mdb)};DBQ=";//这只是连接字符串的一部分,等号后边应该是数据库地址,因为涉及出来的 类希望可以用于向任何access数据库插入图片,所以数据库地址可变
	String dataBaseLocation=null;//数据库地址,例子:"d://a1.mdb"

	String pictureLocation=null;//所要插入的图片的地址

	String url=null;//连接字符串,例子:"jdbc:odbc:driver={Microsoft Access Driver (*.mdb)};DBQ=d://a1.mdb"
	String user=null;
	String password=null;
	String tableName=null;//向数据库中的特定表插入

	Connection con=null;
	PreparedStatement ps=null;
	InputStream in=null;


	//构造函数
	public Insert_Photo_Record(String tableName,String dataBaseLocation,String user,String password,String pictureLocation) throws Exception {
		
			this.tableName=tableName;
			this.dataBaseLocation=dataBaseLocation;
			this.user=user;
			this.password=password;
			this.pictureLocation=pictureLocation;
			
			File tempFile=new File(pictureLocation.trim());//通过文件地址获取文件名
			String fileName=tempFile.getName();

			url=driver+dataBaseLocation;//连接为完成的连接字符串
		
			in=new FileInputStream(this.pictureLocation);
			System.out.println("文件输入流开启");
		        Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
			con=DriverManager.getConnection(url,user,password);//建立连接
			System.out.println("数据库连接成功");
			String string="insert into "+tableName+" values(?,?);";//只能插入两个字段
			ps=con.prepareStatement(string);//准备发送的SQL语句
			ps.setString(1,fileName.substring(0,19));//第一个字段为字符串类型,插入值为图片名(之前的图片名为2015-07-08-17-11-56.jpg格式)
			ps.setBinaryStream(2,in,in.available());//第二个字段为二进制
			ps.executeUpdate();//执行更新
			System.out.println("信息已插入数据库");
			in.close();
			System.out.println("文件输入流关闭");
			ps.close();
			con.close();
			System.out.println("数据库连接关闭");	
	}

}

下边是一个测试类:

public class Test{

	public static void main(String[] args){

		try {

			Insert_Photo_Record insert=new Insert_Photo_Record("record","C://Users//fujiaxiaoshao//Desktop//record.mdb","username", "password","C://Users//fujiaxiaoshao//Desktop//2015-07-08-17-11-56.jpg");

			}
			catch (Exception f){

			f.printStackTrace();

			}

	}

}

效果截图:



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

Java将图片作为二进制进行保存和读取

package com.suncn.common.util; import java.awt.image.BufferedImage; import java.io.ByteArrayI...

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

直接上代码,过多的不解释,看下一篇博文就知道了 import java.io.*; import java.sql.*; public class Get_Photo_Record{ S...

用java读取access文件中数据

import java.sql.*; import java.util.HashMap; import java.util.Map; public class TestAccess { publi...

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

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

Java 文本文件和二进制文件的读取(转)

一,文本文件的读取 1,FileInputStream:按字节读取文件 1.1,导入包 import java.io.FileInputStream; java.io.In...
  • ssyan
  • ssyan
  • 2010年12月16日 11:56
  • 16547

用(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
  • 2047

ACCESS数据库二进制图片导出工具

  • 2017年08月03日 16:18
  • 27KB
  • 下载

java连接Access2010读取图片二进制

  • 2014年02月21日 21:28
  • 15KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:JAVA将图片以二进制形式存入Access数据库
举报原因:
原因补充:

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