PreparedStatement ps =conn.prepareStatement("insert into goods values(?,?,?,?");
conn.setAutoCommit(false);
ps.setString(1, goods.getGoods_name());
ps.setInt(2, goods.getTypeid());
ps.setFloat(3, goods.getGood_price());
ps.setFloat(4, goods.getGoodsDiscount());

ps.close();
conn.commit();
conn.setAutoCommit(true);
如果这是个字段有一个为空,就会抛出异常。数据库表字段,允许空值。请求解决方法,望高手指点。非常感谢哦!

解决方案 »

  1.   

    先判断是否为空,如果为空就不set,不为空就set.
    比如
    if(null != goods.getGoods_name() && !"".equals(goods.getGoods_name())){
    ps.setString(1, goods.getGoods_name());
    }
      

  2.   

    PreparedStatement ps =conn.prepareStatement("insert into goods(x,x,x,x) values(?,?,?,?"); 
    上面代码贴错了
      

  3.   

    把jdk的版本提高,看看set的值。
      

  4.   

    你说对了,呵呵。就是jdk1.5的可以了。谢谢