博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
SSM Mybatis将新增数据写入数据库时出现的500状态码:Error updating database.的可能...
阅读量:5118 次
发布时间:2019-06-13

本文共 2507 字,大约阅读时间需要 8 分钟。

关于maven下ssm整合的项目推荐这篇博客:

今日在ssm下的将新增数据写回数据库时遇到不少的问题,现作记录

如果只是简单地使用Mybatis的话,具体的流程如下:

创建配置文件——>根据配置文件来生成会话工厂——>通过工厂来生成会话——>通过会话操作数据库!

具体可以参考这里:

我理解就是如下图的三个步骤

 

好了,说了上面的废话其实是想说,在ssm中,操作数据库也是要配置sessionFactory的,只是不再像上图那样,而是在mybatis的配置文件(或者spring的相关配置文件)中完成,如下图:

 

如果没整合过的,可以先看:https://www.cnblogs.com/yiye/p/5969157.html

 

回归问题上来,在插入数据库时出现500的状态码错误!!!

 

 

org.springframework.web.util.NestedServletException: Request processing failed; nested exception is org.springframework.jdbc.BadSqlGrammarException: ### Error updating database.  Cause: java.sql.SQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ',,,)' at line 1### The error may involve com.example.edu.mapper.UserMapper.insert-Inline### The error occurred while setting parameters### SQL: insert into t_user (username,password,birthday,gender) values (,,,)### Cause: java.sql.SQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ',,,)' at line 1 根据提示,是说SQL语法错误?然后,我发现自己瞎了,参考的视频是这样的(注意红色框内)

 

没错,我以为红色框内的字段是用单引号引起来的,然后我的SQL语句中就都用单引号引起来了!!! 谁知道ta用的是  `   这个点????? 所以最后的SQL语句应该是
insert into t_user (`username`,`password`,`birthday`,`gender`) values (#{username},#{password},#{birthday},#{gender})
或者是(去掉那个点)
insert into t_user (username,password,birthday,gender) values (#{username},#{password},#{birthday},#{gender})

 

 

然后还遇到了一个这样的问题

org.springframework.web.util.NestedServletException: Request processing failed; nested exception is org.springframework.jdbc.BadSqlGrammarException: ### Error updating database.  Cause: java.sql.SQLSyntaxErrorException: Unknown column 'Karen' in 'field list'### The error may involve com.example.edu.mapper.UserMapper.insert-Inline### The error occurred while setting parameters### SQL: insert into t_user (username,password,birthday,gender) values (Karen,kl,19990912,female)### Cause: java.sql.SQLSyntaxErrorException: Unknown column 'Karen' in 'field list'
 

 

原因是我的sql语句中的#全用了 $,就是下面这样的,是错的,是错的!
insert into t_user (username,password,birthday,gender) values (${username},${password},${birthday},${gender})

 

引入了一个 关于 # 和 $ 的区别 好吧我不知道什么鬼,看这篇博客吧:后续: 这也是我第一次玩ssm,刚开始有以为也要想单一使用mybatis那样,要创建具体的会话工厂来操作数据库,要commit和close,后来才知道在xml中直接配置就行了,果然niubi 上面那个#和$的错误其实是看了一篇错的博客导致的,不过,也是因为那篇博客才让我去关注到这个问题,虽然现在还不是很理解

转载于:https://www.cnblogs.com/Guhongying/p/10692749.html

你可能感兴趣的文章
FastDFS使用
查看>>
服务器解析请求的基本原理
查看>>
[HDU3683 Gomoku]
查看>>
【工具相关】iOS-Reveal的使用
查看>>
数据库3
查看>>
存储分类
查看>>
下一代操作系统与软件
查看>>
【iOS越狱开发】如何将应用打包成.ipa文件
查看>>
[NOIP2013提高组] CODEVS 3287 火车运输(MST+LCA)
查看>>
Yii2 Lesson - 03 Forms in Yii
查看>>
Python IO模型
查看>>
Ugly Windows
查看>>
DataGridView的行的字体颜色变化
查看>>
Java再学习——关于ConcurrentHashMap
查看>>
如何处理Win10电脑黑屏后出现代码0xc0000225的错误?
查看>>
局域网内手机访问电脑网站注意几点
查看>>
[Serializable]的应用--注册码的生成,加密和验证
查看>>
Day19内容回顾
查看>>
第七次作业
查看>>
SpringBoot项目打包
查看>>