如何使用java从数据库中检索图像文件

时间:2016-06-16 11:11:02

标签: java

我可以将图像文件存储到数据库但是如何将图像作为文件和使用java进行预览,就像quikr图像上传

2 个答案:

答案 0 :(得分:0)

Image转换为Bytes,保存为db或以db为单位从db恢复

检查this answer以转换为字节 或this answer就像你的问题一样

检查this的字节到图像操作

答案 1 :(得分:0)

以下代码将存储和检索图像到MySql DB。

将图像存储到DB

 public static void main(String args[]){
    try{
    // DB connection
        Class.forName("com.mysql.jdbc.Driver");
        Connection con=DriverManager.getConnection("jdbc:mysql://localhost/your db name","root","root");

        File file=new File("E:\\sample_image.png");
        FileInputStream fis=new FileInputStream(file);

    //Insert image into db
        PreparedStatement ps=con.prepareStatement("insert into image_table (name,image) values(?,?)"); 
        ps.setString(1,"image 1");
        ps.setBinaryStream(2,fis,(int)file.length());
        ps.executeUpdate();

        ps.close();
        fis.close();
        con.close();
    }catch(Exception e){
        e.printStackTrace();
    }
}

将图像检索到DB

下面的代码将从数据库中检索图像并将其保存到@ location" E:\ sample_image.png"。

public static void main(String args[]){
    try{
    // DB connection
        Class.forName("com.mysql.jdbc.Driver");
        Connection con=DriverManager.getConnection("jdbc:mysql://localhost/your db name","root","root");

        File file=new File("E:\\sample_image.png");
        FileOutputStream fos=new FileOutputStream(file);
        byte b[];
        Blob blob;

        PreparedStatement ps=con.prepareStatement("select * from image_table"); 
        ResultSet rs=ps.executeQuery();

        while(rs.next()){
            blob=rs.getBlob("image");
            b=blob.getBytes(1,(int)blob.length());
            fos.write(b);
        }

        ps.close();
        fis.close();
        con.close();
    }catch(Exception e){
        e.printStackTrace();
    }
}