解决方案 »

  1.   

    数据库字段你设置个默认为""不就是了default '' NOT NULL
      

  2.   

    假如的数据库字段有ID,NAME,PASSWORD 都是不为空的
      

  3.   

    假如的数据库字段有ID,NAME,PASSWORD 都是不为空的
    那我执行insert xxx (id,name)values('xxx','xxx');
    和执行insert xxx(id,name,password)values('xxx','xxx','xxx');
    都要成功,而不是说上面那个因为password没有赋值就失败,必须要全部不为空的字段都赋值才能执行成功。
    上面那个SQL在客户端是可以执行成功的。
      

  4.   

    不是啊,我的数据库是所有的字段都不为null的,如果出现没有插入某个字段,数据库会默认帮我填充空字符串。
    我在客户端是可以执行成功的,而且我前面一段时间使用PHP代码也是可以执行成功的,但是JAVA就是失败了,我怀疑是mysql的jar做了空字符串验证,但是不敢确定。
      

  5.   

    你设个  sql   default value
      

  6.   

    supplier_id是什么类型?mysql什么版本?在Enable Strict Mode为false的情况下,如果非NULL字段不填值,是按当前字段的默认值填充的。
      

  7.   

    序列没有初始化把。试试加
    @BeanCopyIgnore
     private static final long serialVersionUID = 1L;
    你的bean进行序列化处理:public class TCustomerBasic implements Serializable {
      

  8.   

    我用的是纯JDBC,没有使用bean操作。
      

  9.   

    Enable Strict Mode是true还是false?
      

  10.   

    1、首先先说你报错这句话:Field 'supplier_id' doesn't have a default value。由此可以看出你supplier_id这个字段肯定是不能为空的,而你做插入操作的时候根本就没有给这个字段赋值,又没有赋默认值,所以报错了。
    2、你想解决的问题是:就是你不写这个字段,不给他赋值,他也能插入成功,不报错。自动拿空字符串去填充。解决办法:
    第一种:
    要么你就把那个字段不为空去掉,语句是这样的:alter table ball_court_test modify(supplier_id varchar2(100)  null );
    第二种:
    要么你就别默认为空字符串。默认个别的,比如说默认为'null' 或者'default'  
    语句是这样的:alter table ball_court_test modify(supplier_id varchar2(100) default 'null' not null )怎么样?解决你的问题了吗