JAVA将图片以二进制形式存入Access数据库
2015-07-08 16:41
585 查看
下边是一个将图片以二进制文件形式存到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(); } } }
效果截图:
相关文章推荐
- web工程启动顺序
- 初探springmvc
- 关于 Java 对象序列化您不知道的 5 件事
- java 书籍
- Java EE应用的组件
- ubuntu下搭建maven+eclipse+postgresql开发环境
- 直接来第一篇吧----JAVA的三大特性之一:封装(Encapsulation)
- Java Signal实例
- 将myeclipse中现有的项目连接到svn
- terminal,桌面快捷键和eclipse
- Java集合 之 List 集合
- java三大框架是什么?
- javac编译报错非法字符
- LeetCode144 Binary Tree PreOrder Traversal Java题解(递归 迭代)
- java学习笔记 ---数组
- java web 版代码生成器
- java处理日期时间
- JAVA上传文件图片到指定服务器目录
- java虚拟机-类生命周期
- Spring PropertyPlaceholderConfigure 加载配置文件