将图像存储在mysql中并检索它

时间:2012-05-05 15:26:32

标签: java mysql image jsp servlets

我正在使用jsp& servlet

创建一个网站

我想问:

将图像存储在数据库(mysql)并检索它的最佳方法是什么

将其用作个人资料的图片

我该怎么做?

提前谢谢大家。

3 个答案:

答案 0 :(得分:3)

两种常见的解决方案:

  • 直接在数据库中的字节字段

  • 磁盘上的
  • ,路径存储在数据库中(我个人喜欢使用文件的SHA1作为名称,所以我不能有两次相同的文件,路径为a / b / cdef if SHA1是abcdef)

两种解决方案都运行良好。第一种解决方案有利于只备份一个文件,启用回滚等。第二种可能更自然,因为磁盘文件系统用于存储文件。

答案 1 :(得分:2)

将图像保存在服务器上的文件夹中。 在db中保存图像路径。 在显示时从db获取图像路径并检索图像。

答案 2 :(得分:1)

将图像存储在数据库中。

    import java.sql.*;
    import java.io.*;

    public class insertImage{
     public static void main(String[] args) {
      System.out.println("Insert Image Example!");
      String driverName = "com.mysql.jdbc.Driver";
      String url = "jdbc:mysql://localhost:3306/";;
      String dbName = "databasename";
      String userName = "root";
      String password = "root";
      Connection con = null;

      try{
       Class.forName(driverName);
       con = DriverManager.getConnection(url+dbName,userName,password);
       Statement st = con.createStatement();
       File imgfile = new File("images.jpg");
       FileInputStream fin = new FileInputStream(imgfile);
       PreparedStatement pre = con.prepareStatement("insert into Tablename values(?)");
       pre.setBinaryStream(3,fin,(int)imgfile.length());
       pre.executeUpdate();
       System.out.println("Inserting Successfully!");
       pre.close();
       con.close(); 
     }
     catch (Exception e){
      System.out.println(e.getMessage());
     }
    }
   }

使用Servlet从数据库中检索图像 http://www.roseindia.net/servlets/retreiveimage.shtml