SSM Mybatis将新增数据写入数据库时出现的500状态码:Error updating database.的可能
关于maven下ssm整合的项目推荐这篇博客:https://www.cnblogs.com/yiye/p/5969157.html
今日在ssm下的将新增数据写回数据库时遇到不少的问题,现作记录
如果只是简单地使用Mybatis的话,具体的流程如下:
创建配置文件——>根据配置文件来生成会话工厂——>通过工厂来生成会话——>通过会话操作数据库!
具体可以参考这里:http://how2j.cn/k/mybatis/mybatis-crud/1088.html#nowhere
我理解就是如下图的三个步骤

好了,说了上面的废话其实是想说,在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 id="insert" parameterType="User" useGeneratedKeys="true" keyProperty="id">
insert into t_user (`username`,`password`,`birthday`,`gender`) values (#{username},#{password},#{birthday},#{gender})
</insert>
或者是(去掉那个点)
<insert id="insert" parameterType="User" useGeneratedKeys="true" keyProperty="id">
insert into t_user (username,password,birthday,gender) values (#{username},#{password},#{birthday},#{gender})
</insert>
然后还遇到了一个这样的问题
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 id="insert" parameterType="User" useGeneratedKeys="true" keyProperty="id">
insert into t_user (username,password,birthday,gender) values (${username},${password},${birthday},${gender})
</insert>
引入了一个 关于 # 和 $ 的区别
好吧我不知道什么鬼,看这篇博客吧:https://www.cnblogs.com/kangyun/p/5881531.html后续:
这也是我第一次玩ssm,刚开始有以为也要想单一使用mybatis那样,要创建具体的会话工厂来操作数据库,要commit和close,后来才知道在xml中直接配置就行了,果然niubi
上面那个#和$的错误其实是看了一篇错的博客导致的,不过,也是因为那篇博客才让我去关注到这个问题,虽然现在还不是很理解
SSM Mybatis将新增数据写入数据库时出现的500状态码:Error updating database.的可能的更多相关文章
- 在用UEditor往后台传数据写入数据库时,出现错误:从客户端(NewsContent="<p><img src="http://...")中检测到有潜在危险的 Request.。。。
解决办法: 把传数据的方式换了一下,加上 [ValidateInput(false)]就不报错了. 建议看看这个:http://www.360doc.com/content/10/0521/15/46 ...
- python将excel数据写入数据库,或从库中读取出来
首先介绍一下SQL数据库的一些基本操作: 1创建 2删除 3写入 4更新(修改) 5条件选择 有了以上基本操作,就可以建立并存储一个简单的数据库了. 放出python调用的代码: 此处是调用dos 操 ...
- 《项目经验》--通过js获取前台数据向一般处理程序传递Json数据,并解析Json数据,将前台传来的Json数据写入数据库表中
先看一下我要实现的功能界面: 这个界面的功能在图中已有展现,课程分配(教师教授哪门课程)在之前的页面中已做好.这个页面主要实现的是授课,即给老师教授的课程分配学生.此页面实现功能的步骤已在页面 ...
- 通过js获取前台数据向一般处理程序传递Json数据,并解析Json数据,将前台传来的Json数据写入数据库表中
摘自:http://blog.csdn.net/mazhaojuan/article/details/8592015 通过js获取前台数据向一般处理程序传递Json数据,并解析Json数据,将前台传来 ...
- 图形数据写入数据库,Filletream
图形数据写入数据库 用FileStream对象读模式打开图形文件 Dim 文件对象 As New FileStream(图形文件名, FileMode.Open, FileAccess.Read) 定 ...
- layui,返回的数据不符合规范,正确的成功状态码 (code) 应为:0
在使用layui的数据表格绑定数据的时候,出现的一些问题, "返回的数据不符合规范,正确的成功状态码 (code) 应为:0" 之后在网上也查找的了许多的资料,也去看了官网的文档 ...
- C#高效新增数据到数据库(十万级别测试)
我们在对数据库进行新增数据时,怎么能把速度提到最快,时间缩到最短呢?下面针对三种方法进行比较 新增 逐条新增数据模式 Stopwatch s2 = new Stopwatch(); s2.Start( ...
- 通过POI实现上传EXCEL的批量读取数据写入数据库
最近公司新增功能要求导入excel,并读取其中数据批量写入数据库.于是就开始了这个事情,之前的文章,记录了上传文件,本篇记录如何通过POI读取excel数据并封装为对象上传. 上代码: 1.首先这是一 ...
- Django上传excel表格并将数据写入数据库
前言: 最近公司领导要统计技术部门在各个业务条线花费的工时百分比,而 jira 当前的 Tempo 插件只能统计个人工时.于是就写了个报表工具,将 jira 中导出的个人工时excel表格 导入数据库 ...
随机推荐
- :after和:before 伪类
1 使用伪类画三角形 .div{ margin-top: 100px; margin-left: 100px; } .div:after{ content: ''; display:inline-bl ...
- UI自动化框架——构建思维
目的:从Excel中获取列的值,传输到页面 技巧:尽可能的提高方法的重用率 Java包: 1.java.core包 3个类:1)日志(LogEventListener)扩展web driver自带的事 ...
- Java如何获取图片验证码保存
举例网站:https://my.1hai.cn/Login/?url=http://www.1hai.cn/ 一.场景:出于安全性考虑,越来越多的Web平台登录都会增加图形验证码(图片),或者短信验证 ...
- 数据类型&字符串得索引及切片
一:数据类型 1):int 1,2,3用于计算 2):bool ture false 用于判断,也可做为if的条件 3):str 用引号引起来的都是str 存储少量数据,进行 ...
- Django中一个项目使用多个数据库
在django项目中, 一个工程中存在多个APP应用很常见. 有时候希望不同的APP连接不同的数据库,这个时候需要建立多个数据库连接. 参考:http://blog.csdn.net/songfree ...
- Android字符串判断是否包含中文
// 判断一个字符是否是中文 public boolean isChinese(char c) { return c >= 0x4E00 && c <= 0x9FA5;// ...
- Python:遍历一个目录下所有的文件及文件夹,然后计算每个文件的字符和line的小程序
编写了一个遍历一个目录下所有的文件及文件夹,然后计算每个文件的字符和line的小程序,先把程序贴出来. #coding=utf-8 ''' Created on 2014年7月14日 @author: ...
- MySQL Backup mydumper
生产环境中有一实例每天使用mysqldump备份时长达到了2个小时53分钟,接近3个小时,还不算上备份文件归档的时间,这个时间对于逻辑备份来说有点久.为了提高逻辑备份效率,打算替换为使用mydumpe ...
- python set的函数
1. add() 为集合添加元素 2. clear() 移除集合中的所有元素 3. copy() 拷贝一个集合 4. difference() 返回多个集合的差集 5. difference_upda ...
- 56.关于vue项目的seo问题
不可否定的是,vue现在火.但是在实际项目中,特别是像一下交互网站,我们不可避免会考虑到的是seo问题,这直接关系到我们网站的排名,很多人说用vue搭建的网站不能做优化,那我们真的要放弃vue,放弃前 ...