从jLabel在数据库中保存图像

时间:2013-11-22 22:02:29

标签: java

我已经编写了下面的代码。我可以使用FileChooser在Label(jLabel4)上单击按钮(jButton5)来选择图像。现在我想将dataPath保存在数据库中,单击另一个按钮(jButton1)。我应该为jButton1编写哪些代码。 有人请帮助我。

private void jButton5ActionPerformed(java.awt.event.ActionEvent evt)     {                                         

    JFileChooser fc=new JFileChooser();
    fc.showOpenDialog(this);
    File f=fc.getSelectedFile();
    String path=f.getAbsolutePath();
   jLabel4.setIcon(new ImageIcon(path));

}                                        


private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {   


}

1 个答案:

答案 0 :(得分:0)

如果要将文件位置存储到数据库中

  1. 将文件上传到某个位置。
  2. 获取上传的文件路径
  3. 将该文件路径存储到某个表中。

  4. 如果要将图像直接存储到数据库中

    1. 创建如下表格(MySql)
    2. CREATE TABLE `IMAGES` ( 
      `ID` INTEGER UNSIGNED NOT NULL AUTO_INCREMENT, 
      `IMAGE` LONGBLOB NOT NULL, 
      PRIMARY KEY(`ID`) 
      )
      TYPE = InnoDB;
      
      1. 在你的actionlistener中

        PreparedStatement ps = null;
        InputStream is = null;
        try {
        
            con = // get your database connection
            ps = con.prepareCall("insert into IMAGES values (?)");
            is = new FileInputStream(new File("file path"));
            ps.setBinaryStream(1, is);
            int count = ps.executeUpdate();
        
        } catch (ClassNotFoundException e) {        
            e.printStackTrace();
        } catch (SQLException e) {           
            e.printStackTrace();
        } catch (FileNotFoundException e) {  
            e.printStackTrace();
        } finally{
            try{
                if(is != null) is.close();
                if(ps != null) ps.close();
                if(con != null) con.close();
            } catch(Exception ex){}
        }