日期:2014-05-18  浏览次数:20924 次

mysql 数据库 插入图片问题
public void aadCard(FileInputStream Image,String UserName,String Title,String Content,boolean PassOrNot,String CName)
  {
  PreparedStatement pre1;
  String sql = "insert into cardinf(image,UserName,Title,Content,PassOrNot,CName) values(?,?,?,?,?,?)";
  try
  {
 
  pre1 = con.prepareStatement(sql);
  pre1.setBinaryStream(1, Image,Image.available());
  pre1.setString(2, UserName);
  pre1.setString(3,Title);
  pre1.setString(4,Content);
  pre1.setBoolean(5, PassOrNot);
  pre1.setString(6,CName);
  }
  pre1.execute();
 
  }
  catch(IOException e1){}
  catch(SQLException e){}
  }

可以正确执行 但是我的数据库里面却没有记录 请高手指教


------解决方案--------------------
你在mysql中定义的图片字段的类型是什么?
应该是blob(binary large object,二进制长数据类型)

并且,把你捕获的异常显示,而不要都为空(catch(IOException e1{} )

------解决方案--------------------
数据库里最好存地址,然后程序显示图片时再去调用.
------解决方案--------------------

pre1.execute();
把这一行修改为:
pre1.executeUpdate(); 

因为:execute 方法返回一个 boolean 值,以指示第一个结果的形式。
而executeUpdate():(1) 对于 INSERT、UPDATE 或 DELETE 语句,返回行数 (2) 或者对于什么都不返回的 SQL 语句,返回 0 


再者re1.setBinaryStream(1, Image,Image.available()); 

你试试,应该没有其他问题了