您的位置:首页 > 编程语言 > Java开发

java数据库 存取图片

2011-05-20 15:53 495 查看
图片存入数据库中:先将图片转换成二进制流,在将其存入数据库中,字段类型为image

/*引的包*/

import com.sun.image.codec.jpeg.JPEGCodec;

import com.sun.image.codec.jpeg.JPEGImageDecoder;

import java.awt.Image;

import java.io.FileInputStream;

import java.io.IOException;

import java.io.InputStream;

/*存图片到数据库*/

public insertImage(String path, String number){

FileInputStream fi = null;

String path2 = path.replaceAll("////
", "////////
"); //转换图片路径格式 为 E://1.jpg

try {

连接数据库

.....

PreparedStatement pstm = conn.prepareStatement("insert into DBImg (image) values (?)");

fi = new FileInputStream(path2);

pstm.setBinaryStream(1, fi, fi.available());

pstm.execute();

} catch (Exception e) {

e.printStackTrace();

} finally {

if (fi != null) {

try {

fi.close(); //关闭文件流

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

关闭数据库连接

}

}

读出图片并显示在JLabel上

import java.awt.*;

import java.applet.*;

import java.awt.image.BufferedImage;

import com.mhl.db.SqlConnection;

import com.sun.image.codec.jpeg.*;

import javax.swing.*;

import java.sql.*;

import java.io.*;

public class DisplayImg {

public DisplayImg() {

Image img = null;

/*数据库连接,其SqlConnection 为自定义数据库连接类*/

SqlConnection sqlconn;

sqlconn = new SqlConnection();

Connection conn = sqlconn.getConnection();

try {

Statement stmt = conn.createStatement();

String sql = "select image from DBImg where id =4";

ResultSet rs = stmt.executeQuery(sql);

rs.next();

InputStream in = rs.getBinaryStream(1);

JPEGImageDecoder decoder = JPEGCodec.createJPEGDecoder(in);

img = decoder.decodeAsBufferedImage();

rs.close();

conn.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();

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: