存取图片

存取图片
多谢大家,我已经弄好了,就是用的楼上那为仁兄的方法!太感谢了 !

表是:
id int
imageS image

[code]
public void save_actionPerformed(ActionEvent e) {  //保存到数据库中
    try{
      File tmpFile = new File(path);
      FileInputStream in = new FileInputStream(tmpFile);
      BufferedInputStream inFile = new BufferedInputStream(in);
      //获取图片大小
      int a = Integer.parseInt(String.valueOf(tmpFile.length()));
      System.out.println(a / 1000 + "KB");
      byte len[] = new byte[a];
      //读字节
      while (inFile.read(len) != -1) {
      }
      int pos=1;
      //设置id号码
      String sql = "select count(*) as total from product";
      pst = con.prepareStatement(sql);
      rs = pst.executeQuery();
      if (rs.next()) {
         pos=rs.getInt(1);
         pos++;
      }
      //插入记录
      sql = "insert into product values(?,?)";
      pst = con.prepareStatement(sql);
      pst.setInt(1, pos);
      pst.setBytes(2, len);
      pst.executeUpdate();
      JOptionPane.showMessageDialog(this, "插入记录完毕!", "消息",
                                     JOptionPane.INFORMATION_MESSAGE);
    }
    catch(IOException ex){
      System.out.println("I/O错误!"+ex.getMessage());
      ex.printStackTrace();
    }
    catch(Exception ex){
      System.out.println("插入记录错误!"+ex.getMessage());
      ex.printStackTrace();
    }
  }
[/code]

我使用了一个下拉彩旦
[code]
  public void item_itemStateChanged(ItemEvent e) {  //提取图片
    if(item.getSelectedItem().toString().equals("------ID------")){
    }
    else{
      int tmpId = Integer.parseInt(item.getSelectedItem().toString());
      try {
        String sql = "select * from product where id=?";
        pst = con.prepareStatement(sql);
        pst.setInt(1, tmpId);
        rs = pst.executeQuery();
        if (rs.next()) {
          int id = rs.getInt("id");
          //提取图片字节
          byte src[] = rs.getBytes("imageS");
          //还原
          ImageIcon i = new ImageIcon(src);
          ima.setIcon(i);
        }
      }
      catch (SQLException ex) {
        System.out.println("从数据库读取图片错误!");
        System.out.println(ex.getMessage());
      }
    }

  }
[/code]

你可能感兴趣的:(存取图片)