版权声明:欢迎转载,若转载请给出本文链接                  https://blog.csdn.net/niaonao/article/details/78112792              </div><link rel="stylesheet" href="https://csdnimg.cn/release/phoenix/template/css/ck_htmledit_views-d7e2a68c7c.css"><div class="htmledit_views" id="content_views">

字段需要设置一个默认值

Caused by: java.sql.SQLException: Field 'userID' doesn't have a default value

一、新增记录出现异常

1.问题的出现,我在新增一个用户信息时,报的错误,不能添加记录到数据库;

2.详细异常信息

Hibernate: insert into t_user (uname, userAddress, userBirth, userEmail, userGender, userName, userPassword, userPhone) values (?, ?, ?, ?, ?, ?, ?, ?)
org.springframework.jdbc.UncategorizedSQLException: Hibernate operation: could not insert: [biz.entity.main.User]; uncategorized SQLException for SQL [insert into t_user (uname, userAddress, userBirth, userEmail, userGender, userName, userPassword, userPhone) values (?, ?, ?, ?, ?, ?, ?, ?)]; SQL state [HY000]; error code [1364]; Field 'userID' doesn't have a default value; nested exception is java.sql.SQLException: Field 'userID' doesn't have a default valueat org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:83)at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:80)at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:80)at org.springframework.orm.hibernate3.HibernateAccessor.convertJdbcAccessException(HibernateAccessor.java:424)at org.springframework.orm.hibernate3.HibernateAccessor.convertHibernateAccessException(HibernateAccessor.java:410)at org.springframework.orm.hibernate3.HibernateTemplate.doExecute(HibernateTemplate.java:411)at org.springframework.orm.hibernate3.HibernateTemplate.executeWithNativeSession(HibernateTemplate.java:374)at org.springframework.orm.hibernate3.HibernateTemplate.save(HibernateTemplate.java:683)at common.dao.hibernate.BaseHibernateDao.save(BaseHibernateDao.java:57)at biz.web.service.impl.BizService.addSimpleUser(BizService.java:44)at biz.web.action.sys.SimpleUserAction.add(SimpleUserAction.java:80)at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)at java.lang.reflect.Method.invoke(Method.java:606)at com.opensymphony.xwork2.DefaultActionInvocation.invokeAction(DefaultActionInvocation.java:446)at com.opensymphony.xwork2.DefaultActionInvocation.invokeActionOnly(DefaultActionInvocation.java:285)at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)at org.apache.struts2.interceptor.debugging.DebuggingInterceptor.intercept(DebuggingInterceptor.java:256)at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:242)at com.opensymphony.xwork2.interceptor.DefaultWorkflowInterceptor.doIntercept(DefaultWorkflowInterceptor.java:176)at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:242)at com.opensymphony.xwork2.validator.ValidationInterceptor.doIntercept(ValidationInterceptor.java:265)at org.apache.struts2.interceptor.validation.AnnotationValidationInterceptor.doIntercept(AnnotationValidationInterceptor.java:68)at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:242)at com.opensymphony.xwork2.interceptor.ConversionErrorInterceptor.intercept(ConversionErrorInterceptor.java:138)at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:242)at com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:238)at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:242)at com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:238)at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:242)at com.opensymphony.xwork2.interceptor.StaticParametersInterceptor.intercept(StaticParametersInterceptor.java:191)at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:242)at org.apache.struts2.interceptor.MultiselectInterceptor.intercept(MultiselectInterceptor.java:73)at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:242)at org.apache.struts2.interceptor.CheckboxInterceptor.intercept(CheckboxInterceptor.java:91)at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:242)at org.apache.struts2.interceptor.FileUploadInterceptor.intercept(FileUploadInterceptor.java:325)at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:242)at com.opensymphony.xwork2.interceptor.ModelDrivenInterceptor.intercept(ModelDrivenInterceptor.java:100)at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:242)at com.opensymphony.xwork2.interceptor.ScopedModelDrivenInterceptor.intercept(ScopedModelDrivenInterceptor.java:141)at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:242)at com.opensymphony.xwork2.interceptor.ChainingInterceptor.intercept(ChainingInterceptor.java:145)at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:242)at com.opensymphony.xwork2.interceptor.PrepareInterceptor.doIntercept(PrepareInterceptor.java:171)at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:242)at com.opensymphony.xwork2.interceptor.I18nInterceptor.intercept(I18nInterceptor.java:176)at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:242)at org.apache.struts2.interceptor.ServletConfigInterceptor.intercept(ServletConfigInterceptor.java:164)at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:242)at com.opensymphony.xwork2.interceptor.AliasInterceptor.intercept(AliasInterceptor.java:193)at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:242)at com.opensymphony.xwork2.interceptor.ExceptionMappingInterceptor.intercept(ExceptionMappingInterceptor.java:187)at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:242)at org.apache.struts2.impl.StrutsActionProxy.execute(StrutsActionProxy.java:54)at org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:544)at org.apache.struts2.dispatcher.ng.ExecuteOperations.executeAction(ExecuteOperations.java:77)at org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.doFilter(StrutsPrepareAndExecuteFilter.java:91)at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)at common.filter.SessionFilter.doFilter(SessionFilter.java:69)at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230)at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:104)at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:261)at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:581)at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)at java.lang.Thread.run(Thread.java:744)
Caused by: java.sql.SQLException: Field 'userID' doesn't have a default valueat com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1074)at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:4074)at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:4006)at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:2468)at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2629)at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2719)at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:2155)at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2450)at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2371)at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2355)at com.mchange.v2.c3p0.impl.NewProxyPreparedStatement.executeUpdate(NewProxyPreparedStatement.java:139)at org.hibernate.id.IdentityGenerator$GetGeneratedKeysDelegate.executeAndExtract(IdentityGenerator.java:93)at org.hibernate.id.insert.AbstractReturningDelegate.performInsert(AbstractReturningDelegate.java:56)at org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:2346)at org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:2853)at org.hibernate.action.EntityIdentityInsertAction.execute(EntityIdentityInsertAction.java:71)at org.hibernate.engine.ActionQueue.execute(ActionQueue.java:273)at org.hibernate.event.def.AbstractSaveEventListener.performSaveOrReplicate(AbstractSaveEventListener.java:320)at org.hibernate.event.def.AbstractSaveEventListener.performSave(AbstractSaveEventListener.java:203)at org.hibernate.event.def.AbstractSaveEventListener.saveWithGeneratedId(AbstractSaveEventListener.java:129)at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.saveWithGeneratedOrRequestedId(DefaultSaveOrUpdateEventListener.java:210)at org.hibernate.event.def.DefaultSaveEventListener.saveWithGeneratedOrRequestedId(DefaultSaveEventListener.java:56)at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.entityIsTransient(DefaultSaveOrUpdateEventListener.java:195)at org.hibernate.event.def.DefaultSaveEventListener.performSaveOrUpdate(DefaultSaveEventListener.java:50)at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.onSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:93)at org.hibernate.impl.SessionImpl.fireSave(SessionImpl.java:713)at org.hibernate.impl.SessionImpl.save(SessionImpl.java:701)at org.hibernate.impl.SessionImpl.save(SessionImpl.java:697)at org.springframework.orm.hibernate3.HibernateTemplate$12.doInHibernate(HibernateTemplate.java:686)at org.springframework.orm.hibernate3.HibernateTemplate$12.doInHibernate(HibernateTemplate.java:1)at org.springframework.orm.hibernate3.HibernateTemplate.doExecute(HibernateTemplate.java:406)... 73 more

二、异常信息分析

1.insert语句执行失败

异常显示就是insert插入sql语句执行错误导致添加记录到数据库失败;

根本原因就是Field 'userID' doesn't have a default value;

字段userID没有设置默认值;

下面该表的create语句中确实没有给userID设置默认值;

  1. CREATE TABLE `t_user` (
  2. `userID` int(11) NOT NULL,
  3. `uname` varchar(20) default NULL,
  4. `userAddress` varchar(100) default NULL,
  5. `userBirth` varchar(10) default NULL,
  6. `userEmail` varchar(50) default NULL,
  7. `userGender` int(11) default NULL,
  8. `userName` varchar(20) default NULL,
  9. `userPassword` varchar(150) default NULL,
  10. `userPhone` varchar(255) default NULL,
  11. PRIMARY KEY (`userID`)
  12. );

导致insert语句对应的userID字段没有插入数据,而该字段不允许为null导致的;

Hibernate: insert into t_user (uname, userAddress, userBirth, userEmail, userGender, userName, userPassword, userPhone) values (?, ?, ?, ?, ?, ?, ?, ?)

三、解决异常

3-1.给字段设置默认值

这种问题简单的解决办法就是设置默认值,但是当前字段userID是主键不能设置默认值;

`userAddress` varchar(100) default '阿拉加斯加'

3-2.Hibernate配置检查

那可能是Hibernate配置出现了问题;然后找到当前表对应的Entity实体类

字段userID的配置

  1. @Id
  2. @GeneratedValue(strategy = IDENTITY)
  3. @Column(name = "userID", unique = true, nullable = false)
  4. public Integer getUserId() {
  5. return this.userId;
  6. }

该字段设置了自增策略,指定不可为空,且是唯一的;
    感觉没啥问题;再次测试新增一条记录还是失败;

3-3.数据库中表t_user的修改

然后就从数据表这里入手;

将当t_user的userID修改为自增

alter table t_user modify userID int auto_increment;

因为该字段有外键约束不允许修改;

索性就把表删了;新建表t_user;直接在设置字段自增且不为空;然后新增一条记录成功了;

  1. CREATE TABLE `t_user` (
  2. `userID` int(11) NOT NULL auto_increment,
  3. `uname` varchar(20) default NULL,
  4. `userAddress` varchar(100) default NULL,
  5. `userBirth` varchar(10) default NULL,
  6. `userEmail` varchar(50) default NULL,
  7. `userGender` int(11) default NULL,
  8. `userName` varchar(20) default NULL,
  9. `userPassword` varchar(150) default NULL,
  10. `userPhone` varchar(255) default NULL,
  11. PRIMARY KEY (`userID`)
  12. );

四、其他解决方法

1.修改mysql配置

打开my.ini,查找sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"修改为sql-mode="NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"然后重启MYSQL

2.

设置默认值即可,当然这个字段不是主键的情况下;

3.

MySQL 5 uses a strict mode which needs to be disabled. In Windows, Goto Start-->Programs-->MySQL->MySQL Instance Config Wizard. Follow through the Reconfigure Instance option-->Detailed Configuration-->Continue Next a few screens. At the bottom under Enable TCP/IP option there is 'Enable Strict Mode'. Deslect this option (no tick). Save changes and MySQL will restart.

Field 'userID' doesn't have a default value问题相关推荐

  1. Field ‘userID‘ doesn‘t have a default value

    一.新增记录出现异常 1.问题的出现,我在新增一个用户信息时,报的错误,不能添加记录到数据库: 2.详细异常信息 Hibernate: insert into t_user (uname, userA ...

  2. Field 'id' doesn't have a default value

     今天仿照其他模块在写一个新增通知的功能,可是保存的时候总是报错:Field 'id' doesn't have a default value,用的是MySQL, 往后台传送对象的时候,id确实 ...

  3. 出现Field 'ssl_cipher' doesn't have a default value错误怎么解决

    创建snort数据库,创建snort用户,将snort库所有表的所有权限赋予用户snort. MySQL> create database snort; Query OK, 1 row affe ...

  4. Mysql添加用户错误:ERROR 1364 (HY000): Field ‘ssl_cipher‘ doesn‘t have a default value解决方法

    Mysql添加用户错误:ERROR 1364 (HY000): Field 'ssl_cipher' doesn't have a default value解决方法 参考文章: (1)Mysql添加 ...

  5. Field ‘id‘ doesn‘t have a default value错误解决方法

    Field 'id' doesn't have a default value错误解决方法 参考文章: (1)Field 'id' doesn't have a default value错误解决方法 ...

  6. 数据库插入数据时报错 1364 - Field ‘house_name‘ doesn‘t have a default value

    1364 - Field 'house_name' doesn't have a default value出现的原因以及解决办法 一,表结构 二,问题 执行上面红框中的SQL语句时,报下面红框中的错 ...

  7. 记录docker nacos解决Field ‘encrypted_data_key‘ doesn‘t have a default valu方法

    问题:今天使用nocas莫名的发现修改里面的配置报错:Field 'encrypted_data_key' doesn't have a default value; nested exception ...

  8. Java java.sql.SQLException: Field ‘xxx‘ doesn‘t have a default value

    问题描述: Caused by: java.sql.SQLException: Field 'username' doesn't have a default value 问题分析: 1.数据库表字段 ...

  9. Cause: java.sql.SQLException: Field ‘id‘ doesn‘t have a default value

    org.springframework.dao.DataIntegrityViolationException: Error updating database. Cause: java.sql.SQ ...

最新文章

  1. 2018第三届中国数字化零售创新国际峰会9月即将震撼来袭
  2. 其中一个页签慢_VBA实战技巧15:创建索引页
  3. java resource放入的文件没有生成在classes中_快速部署版@开源在线考试系统一键生成各种题型试卷且实时判卷...
  4. 《深入浅出vue.js》阅读笔记之数组变化侦测
  5. flask 蓝图 使用蓝图,增删改查用户
  6. Cron表达式的正则表达式
  7. web.xml 配置404和500错误的自定义页面
  8. STL中的序列式容器——vector(向量)
  9. 生成HTML测试报告
  10. SQL error OCI Error 2003 问题处理
  11. 【Python】xlwt写入excel表格的样式设置(字体;对其方式;边框;背景颜色;合并写入等)
  12. win10兼容VC++6.0(绿色完整版)安装方法
  13. 2022AcWing寒假算法每日一题之1934. 贝茜放慢脚步
  14. C# 将dataTable中的数据导出到excel表中
  15. 那些短,却叫人很心疼的句子(转)
  16. apple pay充游戏后退款_2019,7月苹果王者荣耀退款
  17. 联想服务器显示系统初始化,[转载]联想服务器系统设置(一)
  18. ionic3学习2(API)
  19. 电脑用摄像头 质量不错的几个型号 旧手机接电脑当摄像头 iriun webcam
  20. ECharts显示24小时时间数据的一种办法

热门文章

  1. VML,The Vector Markup Language(矢量可标记语言)
  2. 小数化分数的口诀表_五年级数学下册分数与小数的互化,常用的小数化成分数表,要熟记...
  3. 【OpenCV学习】(十三)机器学习
  4. 千匠星云数字化解决方案介绍 | 品牌官网数字化升级解决方案
  5. linux环境编程从应用,linux环境编程:从应用到内核
  6. 移动短信网关接入必须的几个参数
  7. bat脚本:快速入门
  8. 【MATLAB HDF5】Matlab将复数保存到hdf5文件
  9. 台式计算机(G)是什么意思,台式电脑什么配置好
  10. c语言5v电源电路工作原理,创易AC-DC RCC3W开关电源工作原理