当前位置: 代码迷 >> J2EE >> JAVA MYSQL JDBC ERROR,该如何处理
  详细解决方案

JAVA MYSQL JDBC ERROR,该如何处理

热度:409   发布时间:2016-04-17 23:36:24.0
JAVA MYSQL JDBC ERROR
开发环境 mysql-connection-5.0.8.jar  MYSQL 5.5 WINDOWS 环境

问题:我的数据库表设置为所有字段不能为空(字段有 id,name),没有自动增长,没有默认值

我的my.ini 配置 sql_mode=NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION 
想得到的结果:insert into xxx(id,name)values('1','2'); success
insert into xxx(id)values('1'); success  请注意,这两个都要执行成功。

(注:叫我填写默认值的,填写自增长的请不要回答,这两个我清楚,我想要第三种方法)
我想得到的是,我填写了不管多少个字段都执行成功,没有填写进去的字段,数据库自动帮我填充默认值,
比如字符串就自动填充空字符串,int 类型自动填充0等等

在客户端上面上,两个SQL都可以执行成功的,但是我使用JAVA JDBC  执行第二个SQL失败了,提示
java.sql.SQLException: Field 'name' doesn't have a default value
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:946)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:2985)
at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1631)
at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:1723)
at com.mysql.jdbc.Connection.execSQL(Connection.java:3277)
at com.mysql.jdbc.Statement.executeUpdate(Statement.java:1402)
at com.mysql.jdbc.Statement.executeUpdate(Statement.java:1317)
at dao.DoDao.insert(DoDao.java:39)
at dao.DoDao.main(DoDao.java:68)
请明白我表达的意思的,能帮我解决问题的帮帮忙,如果不能回答,给一点大概的思路也行?
------解决思路----------------------
“我的数据库表设置为所有字段不能为空”,这就注定了执行insert的时候需要提供所有的字段值。你不想提供,而且还是直接执行sql/jdbc执行sql,我是想不出折。
------解决思路----------------------
设置为不能为空了的话,直接insert应该不能实现吧
能在插入之前判断下需要插入的参数有几个,没有的插入默认值可以么?
  相关解决方案