java如何將圖片存入mysql數據庫



存入圖片

import java.sql.*;
import java.io.*;
public class InsertImg
{
public static void main(String args[])
{
try{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection con=DriverManager.getConnection("jdbc:odbc:DBImg");
String sql = "insert into DBImg (p_w_picpath) values (?)";
PreparedStatement pstmt=con.prepareStatement(sql);
FileInputStream fi=new FileInputStream("./room.jpg");
pstmt.setBinaryStream(1,fi,fi.available());
pstmt.execute();
fi.close();
pstmt.close();
con.close();
}catch(Exception e){System.out.println(e.getMessage());}
}
}
把圖片取出輸出到文件
import java.io.*;
import java.sql.*;
 
public class ImgRead
{
public static void main(String args[])
{
try
{
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
String url="jdbc:microsoft:sqlserver://BILLGATES:1433";
Connection cn=DriverManager.getConnection(url,"sa","8310");
Statement st=cn.createStatement();
String str = "select img from test where id=1";
ResultSet rs=st.executeQuery(str);
rs.next();
InputStream in=rs.getBinaryStream(1);
 
FileOutputStream file = new FileOutputStream("./88.mp3");
byte c[] = new byte[1024];
 
int r = 0;
 
while ((r = in.read(c)) != -1){
file.write(c,0,r);
 
}
 
 
 
file.close();
in.close();
 
 
 
 
}
catch(Exception e)
{
e.printStackTrace();
}
}
}
把圖片輸出到JLabel控件
import java.awt.*;
import java.applet.*;
import java.awt.p_w_picpath.BufferedImage;
import com.sun.p_w_picpath.codec.jpeg.*;
import javax.swing.*;
import java.sql.*;
import java.io.*;
public class DisplayImg
{
public DisplayImg(){
Image img=null;
try{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection con=DriverManager.getConnection("jdbc:odbc:DBImg");
Statement stmt=con.createStatement();
String sql = "select p_w_picpath from DBImg";
ResultSet rs=stmt.executeQuery(sql);
rs.next();
InputStream in = rs.getBinaryStream(1);
JPEGImageDecoder decoder = JPEGCodec.createJPEGDecoder(in);
img=decoder.decodeAsBufferedImage();
rs.close();
con.close();
}catch(Exception e){System.out.println(e.getMessage());}
 
JFrame f=new JFrame();
JLabel label=new JLabel();
ImageIcon icon=new ImageIcon(img);
label.setIcon(icon);
JScrollPane jsp=new JScrollPane(label);
Container content=f.getContentPane();
content.add(jsp);
f.setSize(535,400);
f.setVisible(true);
 
}
 
public static void main(String args[]){
DisplayImg di=new DisplayImg();
}
}
 

上面的程序數據庫驅動不一致,自行修改一下.其中在Sqlserver中要存放圖片的字段應選"p_w_picpath"類型

源代碼來源:http://www.cnblogs.com/qixin622/archive/2010/09/01/1814658.html


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章