您好,登錄后才能下訂單哦!
這篇文章將為大家詳細(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ò),可以把它分享出去讓更多的人看到。
免責(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)容。