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

Java利用Eclipse和Mysql数据库连接并存储图片——取出图片

2014-08-21 20:13 423 查看
通过流和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();
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Java mysql 数据库