mybatis获取oracle状态码,SSM Mybatis将新增数据写入数据库时出现的500状态码:Error updating database.的可能...

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

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

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

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

cc4e7846c84e419e43a5a255e5edc2b5.png

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

cd6abc7d1ee1ec5d79c71f8cbc8e35e2.png

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

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

a326a88d9b1fa70b1a17debdf732c98a.png

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语法错误?然后,我发现自己瞎了,参考的视频是这样的(注意红色框内)

e5d13ff33af205632a90deaafa4ad487.png

没错,我以为红色框内的字段是用单引号引起来的,然后我的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'

4129bf15b54bbf836a16ef767203f900.png

原因是我的sql语句中的#全用了 $,就是下面这样的,是错的,是错的!

insert into t_user (username,password,birthday,gender) values(${username},${password},${birthday},${gender})

引入了一个 关于 # 和 $ 的区别

这也是我第一次玩ssm,刚开始有以为也要想单一使用mybatis那样,要创建具体的会话工厂来操作数据库,要commit和close,后来才知道在xml中直接配置就行了,果然niubi

上面那个#和$的错误其实是看了一篇错的博客导致的,不过,也是因为那篇博客才让我去关注到这个问题,虽然现在还不是很理解

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值