【地表最强】mysql报错Column count doesn't match value count at row 1

今天在调试程序的过程中,执行sql报错Column count doesn't match value count at row 1

首先看了执行的sql,插入的sql语句并没有什么问题,然后偶然发现了jdbc连接mysql的配置如下。


以上连接属性中使用了useServerPrepStmts=true属性,然后我将这个属性删除掉,重新启动程序,竟然执行程序成功了!


然后我在网上搜索此属性的作用,整理如下

useServerPrepStmts
如果服务器支持,是否使用服务器端预处理语句? 默认值为“真”。


mysql执行一个预编译操作后,会将sql模板(即带占位符“?”的sql),以及参数列表(模板中用各个占位符表示)缓存,下一次有同样的sql模板发来的时候,直接将参数传给这个模板,拼好后execute。虽然mysql的预编译功能对性能影响不大,但在jdbc中使用PreparedStatement是必要的,可以有效地防止sql注入

看了如上的一些说法,但我还是不明白为什么我会出现如上的问题,如果有人知道或者遇到过这样的问题,欢迎指导。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值