溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

java中怎么利用mysql存儲(chǔ)讀取圖片

發(fā)布時(shí)間:2021-07-27 17:03:59 來(lái)源:億速云 閱讀:282 作者:Leah 欄目:編程語(yǔ)言

這篇文章將為大家詳細(xì)講解有關(guān)java中怎么利用mysql存儲(chǔ)讀取圖片,文章內(nèi)容質(zhì)量較高,因此小編分享給大家做個(gè)參考,希望大家閱讀完這篇文章后對(duì)相關(guān)知識(shí)有一定的了解。

  java怎樣操作mysql存儲(chǔ)讀取圖片

  1在mysql中創(chuàng)建一個(gè)表picture_db

  createtablepicture_db(

  file_namevarchar(255)notnull,

  contentlongblob,

  primarykey(file_name));

  2java寫儲(chǔ)存文件的代碼

  importjava.sql.*;

  importjava.io.*;

  importjava.nio.*;

  publicclassUploadImage{

  protectedConnectiondbConnection;

  protectedStringdriverName="com.mysql.jdbc.Driver";

  protectedStringdbURL="jdbc:mysql://localhost:3306/sample_db";

  protectedStringuserID="root";

  protectedStringpasswd="yourpassword";

  publicbooleanstoreImage(Stringsqlstr,Filefile){

  try{

  FileInputStreamfin=newFileInputStream(file);

  ByteBuffernbf=ByteBuffer.allocate((int)file.length());

  byte[]array=newbyte[1024];

  intoffset=0,length=0;

  while((length=fin.read(array))>0){

  if(length!=1024)

  nbf.put(array,0,length);

  else

  nbf.put(array);

  offset+=length;

  }

  fin.close();

  byte[]content=nbf.array();

  returnsetImage(sqlstr,content);

  }catch(FileNotFoundExceptione){

  e.printStackTrace();

  }catch(IOExceptione){

  e.printStackTrace();

  }

  returnfalse;

  }

  privatebooleansetImage(Stringsqlstr,byte[]in){

  booleanflag=false;

  if(sqlstr==null)

  sqlstr="select*frompicture_db";

  try{

  Class.forName(driverName);

  dbConnection=DriverManager.getConnection(dbURL,userID,passwd);

  Statementstmt=dbConnection.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_UPDATABLE);

  ResultSetrs=stmt.executeQuery(sqlstr);

  if(rs.next()){

  rs.updateBytes(2,in);

  rs.updateRow();

  }

  else{

  rs.moveToInsertRow();

  rs.updateString(1,"01");

  rs.updateBytes(2,in);

  rs.insertRow();

  }

  rs.close();

  flag=true;

  }catch(Exceptione){

  e.printStackTrace();

  }

  returnflag;

  }

  publicstaticvoidmain(String[]args){

  UploadImageupload=newUploadImage();

  try{

  Filefile=newFile("01.jpg");

  if(upload.storeImage(null,file))

  System.out.print("ture");

  else

  System.out.print("False");

  }catch(Exceptione){

  e.printStackTrace();

  }

  }

  }

  如果執(zhí)行成功的話系統(tǒng)打印true否則false

  java怎樣操作mysql存儲(chǔ)讀取圖片

  3就是將圖片讀取出來(lái)與儲(chǔ)存的過(guò)程相反先建立連接創(chuàng)建數(shù)據(jù)庫(kù)查詢JDBC對(duì)象使用該語(yǔ)句來(lái)返回二進(jìn)制結(jié)果保存到文件中

  <%@pagecontenttype= charset="GB2312"%">

  <%@pageimport="java.sql.*"%><%@pageimport="java.io.*"%>

  <%@pageimport="com.sun.image.codec.jpeg.*"%>

  <%@pageimport="javax.imageio.*"%>

  <%@pageimport="java.awt.image.*"%> 

  <% stringshowimage="select*frompicture_dbwherefile_name='01'" connectionconn="null;" bufferedinputstreaminputimage="null;StringdriverName="com.mysql.jdbc.Driver";" stringdburl="jdbc:mysql://localhost:3306/sample_db" stringuserid="root" stringpasswd="yourpassword" conn="DriverManager.getConnection(dbURL,userID,passwd);Statementst=conn.createStatement();" resultsetrs="st.executeQuery(showImage);" blobblob="(Blob)rs.getBlob("content");" inputimage="newBufferedInputStream(blob.getBinaryStream());" bufferedimageimage="null;" image="ImageIO.read(inputImage);" servletoutputstreamsos="response.getOutputStream();" jpegimageencoderencoder="JPEGCodec.createJPEGEncoder(sos);">

關(guān)于java中怎么利用mysql存儲(chǔ)讀取圖片就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺(jué)得文章不錯(cuò),可以把它分享出去讓更多的人看到。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI