欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Java實現用Mysql存取圖片操作實例

 更新時間:2015年06月30日 09:21:01   投稿:junjie  
這篇文章主要介紹了Java實現用Mysql存取圖片操作實例,本文講解了使用BLOB類型保存和讀取圖片的代碼實例,需要的朋友可以參考下

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

相關文章

  • 為zookeeper配置相應的acl權限

    為zookeeper配置相應的acl權限

    這篇文章主要介紹了為zookeeper配置相應的acl權限的相關實例,具有一定參考價值,需要的朋友可以了解下。
    2017-09-09
  • java?11新特性HttpClient主要組件及發(fā)送請求示例詳解

    java?11新特性HttpClient主要組件及發(fā)送請求示例詳解

    這篇文章主要為大家介紹了java?11新特性HttpClient主要組件及發(fā)送請求示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-06-06
  • SpringBoot配置log4j2的實現示例

    SpringBoot配置log4j2的實現示例

    SpringBoot中默認使用Logback作為日志框架,本文主要介紹了SpringBoot配置log4j2的實現示例,具有一定的參考價值,感興趣的可以了解一下
    2023-12-12
  • 教你一步解決java.io.FileNotFoundException:找不到文件異常

    教你一步解決java.io.FileNotFoundException:找不到文件異常

    這篇文章主要給大家介紹了關于如何一步解決java.io.FileNotFoundException:找不到文件異常的相關資料,文中通過圖文以及代碼介紹的非常詳細,需要的朋友可以參考下
    2024-01-01
  • 在MyBatisPlus中使用@TableField完成字段自動填充的操作

    在MyBatisPlus中使用@TableField完成字段自動填充的操作

    這篇文章主要介紹了在MyBatisPlus中使用@TableField完成字段自動填充的操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-02-02
  • Java全面細致講解Cookie與Session及kaptcha驗證碼的使用

    Java全面細致講解Cookie與Session及kaptcha驗證碼的使用

    web開發(fā)階段我們主要是瀏覽器和服務器之間來進行交互。瀏覽器和服務器之間的交互就像人和人之間進行交流一樣,但是對于機器來說,在一次請求之間只是會攜帶著本次請求的數據的,但是可能多次請求之間是會有聯系的,所以提供了會話機制
    2022-06-06
  • spring cloud 分布式鏈路追蹤的方法

    spring cloud 分布式鏈路追蹤的方法

    這篇文章主要介紹了spring cloud 分布式鏈路追蹤的方法,小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-07-07
  • Mybatis分頁插件PageHelper的配置和簡單使用方法(推薦)

    Mybatis分頁插件PageHelper的配置和簡單使用方法(推薦)

    在使用Java Spring開發(fā)的時候,Mybatis算是對數據庫操作的利器了。這篇文章主要介紹了Mybatis分頁插件PageHelper的配置和使用方法,需要的朋友可以參考下
    2017-12-12
  • JAVA中字符串如何與整型數字相加

    JAVA中字符串如何與整型數字相加

    這篇文章主要介紹了JAVA中字符串如何與整型數字相加,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2019-07-07
  • 如何通過XML方式配置并實現Mybatis

    如何通過XML方式配置并實現Mybatis

    這篇文章主要介紹了如何通過XML方式配置并實現Mybatis,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-11-11

最新評論