標籤:java mysql 資料庫 圖片儲存
通過流和JPEGCodec、JPEGImageEncoder類的操作來取出資料庫中的圖片。注釋很詳細,注意要額外的引入mysql的驅動包,要修改資料庫的使用者名稱和密碼以及URL。希望對大家有協助。import java.awt.image.BufferedImage;import java.io.*;import java.sql.Blob;import java.sql.Connection;import java.sql.DriverManager;import java.sql.PreparedStatement;import java.sql.ResultSet;import com.sun.image.codec.jpeg.JPEGCodec;import com.sun.image.codec.jpeg.JPEGImageEncoder;import javax.imageio.ImageIO;public class getImage { //串連資料庫的相關資訊 static String user = "username";//用自己的使用者名稱 static String driver = "com.mysql.jdbc.Driver"; static String password = "password";//用自己的密碼 static String url = "jdbc:mysql://localhost:4017/image";//自己的資料庫地址 public static void main(String[]args){ try { Class.forName(driver);//載入驅動 Connection con = DriverManager.getConnection(url,user,password);//獲得Connection對象 PreparedStatement ps = con.prepareStatement("select photo from photo where name = ‘z‘"); ResultSet rs = ps.executeQuery(); rs.next();//移動到第一行上 Blob blob = (Blob)rs.getBlob("photo");//獲得資料庫中的Blob對象,即映像 File file = new File("D:/1.jpg");//指定檔案的輸出路徑和檔案名稱 if(!file.exists())//判斷,如果檔案不存在,則建立檔案 file.createNewFile(); FileOutputStream fos = new FileOutputStream(file);//根據指定的路徑,建立檔案輸出資料流 BufferedInputStream in = new BufferedInputStream(blob.getBinaryStream());//將得到的檔案寫入流中 //System.out.println(in);//測試內容是否為空白 BufferedImage image = ImageIO.read(in);//將流轉換為Image對象 JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(fos); encoder.encode(image); } catch (Exception e) { e.printStackTrace(); } }}
本文出自 “低調的氣質” 部落格,請務必保留此出處http://6641091.blog.51cto.com/6631091/1543300