关于Parameter ‘username‘ not found. Available parameters are [arg1, arg0, param1, param2]的解决方案

今天写用户注册功能,报了一个错误,如下:
在这里插入图片描述
提示是参数不匹配的错误,我赶紧查看一下SQL语句
在这里插入图片描述
在这里插入图片描述
发现好像并没有什么毛病啊,那为什么报这个错误呢?
从报错信息来看是参数不匹配,于是我在插入前添加了两条打印语句,如下
在这里插入图片描述
可以看到控制台成功打印,说明参数赋值没有问题,但是给出了一个SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@7a214eb] was not registered for synchronization because synchronization is not active的错误提示
在这里插入图片描述
这个错误的意思是插入的某个字段是null,而数据库设计的时候,这个字段不能为null,所以报错。
在这里插入图片描述

打开数据库一看,确实有个id是不为null,可是id设置了自增啊!
下面,重点来了
转念一想,在mybatis中#{}底层调用的是jdbc的prepareStatement的set方法!
既然你需要id字段,那我就给你传user对象,你自个去数据库自增吧!
修改如下:
在这里插入图片描述
在这里插入图片描述
测试:效果很不错,数据成功插入。以上只是解决该问题的其中一种方案,仅供参考。
在这里插入图片描述

总结:框架的底层原理很重要!很重要!很重要!

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值