Java 访问mysql的blob,对图片进行存取
来源:互联网 发布:pl sql块包括哪几部分 编辑:程序博客网 时间:2024/05/22 01:26
此实现为用java访问mysql的blob,对图片进行存取
/** * Title: BlobPros.java * Project: test * Description: 把图片存入mysql中的blob字段,并取出 * Call Module: mtools数据库中的tmp表 * File: C:downloadsluozsh.jpg * Copyright: Copyright (c) 2003-2003 * Company: uniware * Create Date: 2002.12.5 * @Author: ChenQH * @version 1.0 版本* * * Revision history * Name Date Description * ---- ---- ----------- * Chenqh 2003.12.5 对图片进行存取 * * note: 要把数据库中的Blob字段设为longblob * *///package com.uniware;import java.io.*; import java.util.*; import java.sql.*;public class BlobPros { private static final String URL = "jdbc:mysql://10.144.123.63:3306/mtools?user=wind&password=123&useUnicode=true"; private Connection conn = null; private PreparedStatement pstmt = null; private ResultSet rs = null; private File file = null;public BlobPros() { }/** * 向数据库中插入一个新的BLOB对象(图片) * @param infile 要输入的数据文件 * @throws java.lang.Exception */ public void blobInsert(String infile) throws Exception { FileInputStream fis = null; try { Class.forName("org.gjt.mm.mysql.Driver").newInstance(); conn = DriverManager.getConnection(URL);file = new File(infile); fis = new FileInputStream(file); //InputStream fis = new FileInputStream(infile); pstmt = conn.prepareStatement("insert into tmp(descs,pic) values(?,?)"); pstmt.setString(1,file.getName()); //把传过来的第一个参数设为文件名 //pstmt.setBinaryStream(2,fis,(int)file.length()); //这种方法原理上会丢数据,因为file.length()返回的是long型 pstmt.setBinaryStream(2,fis,fis.available()); //第二个参数为文件的内容 pstmt.executeUpdate(); } catch(Exception ex) { System.out.println("[blobInsert error : ]" + ex.toString()); } finally { //关闭所打开的对像// pstmt.close(); fis.close(); conn.close(); } }/** * 从数据库中读出BLOB对象 * @param outfile 输出的数据文件 * @param picID 要取的图片在数据库中的ID * @throws java.lang.Exception */public void blobRead(String outfile,int picID) throws Exception { FileOutputStream fos = null; InputStream is = null; byte[] Buffer = new byte[4096];try { Class.forName("org.gjt.mm.mysql.Driver").newInstance(); conn = DriverManager.getConnection(URL); pstmt = conn.prepareStatement("select pic from tmp where id=?"); pstmt.setInt(1,picID); //传入要取的图片的ID rs = pstmt.executeQuery(); rs.next();file = new File(outfile); if(!file.exists()) { file.createNewFile(); //如果文件不存在,则创建 } fos = new FileOutputStream(file); is = rs.getBinaryStream("pic"); int size = 0; /* while(size != -1) { size = is.read(Buffer); //从数据库中一段一段的读出数据 //System.out.println(size); if(size != -1) //-1表示读到了文件末 fos.write(Buffer,0,size); } */ while((size = is.read(Buffer)) != -1) { //System.out.println(size); fos.write(Buffer,0,size); }} catch(Exception e) { System.out.println("[OutPutFile error : ]" + e.getMessage()); } finally { //关闭用到的资源 fos.close(); rs.close(); pstmt.close(); conn.close(); } }public static void main(String[] args) { try {BlobPros blob = new BlobPros(); //blob.blobInsert("C:Downloadsluozsh1.jpg"); blob.blobRead("c:/downloads/1.jpg",47); } catch(Exception e) { System.out.println("[Main func error: ]" + e.getMessage()); } } }
参考资料:http://www.cublog.cn/u/2550/?u=http://www.cublog.cn/u/2550/showart.php?id=9900
- Java 访问mysql的blob,对图片进行存取
- 实现为用java访问mysql的blob—对图片进行存取
- 在java中对mysql中blob型的存取
- 使用mysql的blob类型存取图片
- Java实现对Mysql的图片存取操作
- JAVA Mysql中如何实现Blob的存取 -2
- java如何来实现MySQL中Blob字段的存取
- MySQL 中 Blob的存取操作
- MySql Blob Hibernate 存取
- Java Oracle数据库BLOB字段的存取
- Java实现MySQL图片存取
- 使用java语言操作,如何来实现MySQL中Blob字段的存取
- jdbcTemplate存取blob(图片)
- c++ mysql二进制存取,blob存取
- c++ mysql二进制存取,blob存取
- c++ mysql二进制存取,blob存取
- mysql 中图片的存取
- 使用C#进行图片的数据库存取
- 用内核对象进行线程同步1
- 网页经典代码和CSS样式大全
- 正则表达式总结
- windows系统下Apache+php的配置
- uart-verilog HDL
- Java 访问mysql的blob,对图片进行存取
- Java编程中“为了性能”尽量要做到的一些地方
- OPENCV资料总结
- jQuery 鼠标拖动
- RSA/DSA 密钥的工作原理
- 如果再写一个ipcamera项目,我哪些地方能做的更好?
- 我的初恋比韩剧还凄美
- 注意调试程序的方法
- 收集点关于FS寄存器的资料