程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> Java完成用Mysql存取圖片操作實例

Java完成用Mysql存取圖片操作實例

編輯:關於JAVA

Java完成用Mysql存取圖片操作實例。本站提示廣大學習愛好者:(Java完成用Mysql存取圖片操作實例)文章只能為提供參考,不一定能成為您想要的結果。以下是Java完成用Mysql存取圖片操作實例正文


1.MySQL中的BLOB類型

  Mysql中可以存儲年夜文件數據,普通應用的BLOB對象。如圖片,視頻等等。

  BLOB是一個二進制年夜對象,可以包容可變數目的數據。由於是二進制對象,所以與編碼方法有關。有4種BLOB類型:TINYBLOB、BLOB、MEDIUMBLOB和LONGBLOB。它們只是可包容值的最年夜長度分歧。

  四種字段類型保留的最年夜長度以下:

  TINYBLOB - 255 bytes
  BLOB - 65535 bytes(64KB)
  MEDIUMBLOB - 16,777,215 bytes(16MB) (2^24 - 1)
  LONGBLOB - 4G bytes (2^32 – 1)

2.java對MySQL圖片的讀取

上面是test數據庫中界說的phototest表構造。

保留與讀取圖片的代碼以下:

import java.io.*;
import java.sql.*;
public class LoadStoreBLOB {
 public static void main(String[] args) {
  DBConnection  DB = new DBConnection(); //擔任銜接MySQl數據庫的類
  Connection   con = null;
  PreparedStatement  ps = null;
  ResultSet  rs = null;
  InputStream in = null; 
  try {
   //從當地硬盤硬盤讀取一張圖片保留到數據庫
   con=DB.getConn();
   in=new FileInputStream("sdf.png");
   ps=con.prepareStatement("insert into test.phototest values(?,?)");
   ps.setInt(1,2);
   ps.setBinaryStream(2, in, in.available());
   ps.executeUpdate();
   in.close();
   DB.closeConn(con);
   
   //從數據庫讀取圖片保留到當地硬盤
   con=DB.getConn();
   ps=con.prepareStatement("select * from test.phototest where id=?");
   ps.setInt(1,2);
   rs=ps.executeQuery();
   rs.next(); //將光標指向第一行
   in=rs.getBinaryStream("photo");
   byte[] b=new byte[in.available()]; //新建保留圖片數據的byte數組
   in.read(b);
   OutputStream out=new FileOutputStream("222.jpg");
   out.write(b);
   out.flush();
   out.close();
   DB.closeConn(con);
  } 
  catch (Exception e) {
   System.out.println("Error::"+e);
  }
 }
}

3.選擇適合的字段年夜小

  假如選擇的字段類型的最年夜長度較小,放不下保留的數據,能夠會報出MySQL數據截斷異常。如:

    com.mysql.jdbc.MysqlDataTruncation: Data truncation: Data too long for column 'photo' at row 1

 

Mysql 中文參考手冊列類型:

  http://dev.mysql.com/doc/refman/5.1/zh/column-types.html#blob

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved