目录

  • 问题描述
  • 解决方案

问题描述

今天在使用Spring5框架时,用JDBCTemplate技术来操作数据库,一开始增删改查都好好的,后来使用jdbcTemplate.batchUpdate()进行批量添加数据时给我报了一个错,大概意思就是说我SQL语法有问题,我看了很久也看不出SQL到底有啥问题

  • 报错信息
org.springframework.jdbc.BadSqlGrammarException: PreparedStatementCallback; bad SQL grammar [insert into user(name, password, address, phone) values(?, ?, ?, ?);]; nested exception is java.sql.BatchUpdateException: 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 '('段誉', '15623', '大理', '17785645');,('虚竹', '198723', '灵鹫宫', '15' at line 1
  • java与SQL代码
jdbcTemplate.batchUpdate("insert into user(name, password, address, phone) values(?, ?, ?, ?);", args);

解决方案

后来多次尝试后才发现就是SQL结尾的分号的问题,多了这个分号批处理就运行不了,把这个分号删了就没问题了,就像这样,猜测应该是与JDBCTemplate底层原理有关,批处理组合SQL时把分号也组进一个SQL中间去了,感兴趣的小伙伴可以去研究研究源码

jdbcTemplate.batchUpdate("insert into user(name, password, address, phone) values(?, ?, ?, ?)", args);

Spring5使用JDBCTemplate批处理添加数据时提示SQL语法有错相关推荐

  1. ESXI添加硬盘时提示 无法创建 VMFS 数据存储 - 无法更改主机配置

    ESXI添加硬盘时提示 无法创建 VMFS 数据存储 - 无法更改主机配置 1.打开ESXI的SSH 2.找到不能添加的硬盘路径 3.用SSH操作 1.打开ESXI的SSH 2.找到不能添加的硬盘路径 ...

  2. MySQL 数据库添加数据时为什么会产生外码(外键)约束?原理就是什么?如何解决?

    文章目录 前言 一.插入新数据时报错外键约束? 二.对于出错 SQL 语句的分析 三.对于外码约束的分析 四.如何处理外键约束? 总结 前言 我们在使用 MySQL 数据库时,添加数据如果设计不合理很 ...

  3. Navicat向sqlserver中插入数据时提示:当 IDENTITY_INSERT 设置为 OFF 时,不能向表中的标识列插入显式值

    场景 通过Navicat向sqlserver中插入一条数据时提示: 解决 这是因为在设计表时,将主键ID设置为自增约束,当插入数据或者执行插入语句时,如果包含这个 主键字段,就会提示错误. 打开数据库 ...

  4. XP添加权限时提示:无法显示用户选项对话框的解决方法!

    症状: 打开共享权限添加用户无法打开 出现" 安全:无法显示用户选项对话(null)" 如图: 解决方法: 第一种方法是: 将别人WINDOWS SYSTEM32 文件夹下的ric ...

  5. DB2添加数据时主键、唯一键冲突的解决方法

    DB2添加数据时主键.唯一键冲突的解决方法 参考文章: (1)DB2添加数据时主键.唯一键冲突的解决方法 (2)https://www.cnblogs.com/equation/articles/91 ...

  6. Idea添加Jetty时提示JMX module is not included

    添加jetty时提示下图 此时,我们应该编辑jetty根目录下start.ini添加 --module=jmx 此时就可以成功添加了 原因:在9.07的时默认情况是设置了 "OPTIONS= ...

  7. 用Navicat for MySQL往数据表中添加数据时汉字出现乱码

    添加数据时,记录中为汉字的字符串,显示为? 出现问题的原因:编码格式错误. 在设计表中修改,不起作用 重新建立数据库,设置编码格式,重新创建表,添加记录,成功. 创建数据库时要设置编码格式,如图所示 ...

  8. C#使用OleDB操作ACCESS插入数据时提示:标准表达式中数据类型不匹配。

    C#使用OleDB操作ACCESS插入数据时提示:标准表达式中数据类型不匹配. OleDbParameter param = new OleDbParameter("" + dc. ...

  9. C#使用OleDB操作ACCESS插入数据时提示:参数 @p_Contract 没有默认值

    C#使用OleDB操作ACCESS插入数据时提示:参数 @p_Contract 没有默认值 OleDbParameter param = new OleDbParameter("" ...

最新文章

  1. 352万帧标注图片,1400个视频,亮风台推最大单目标跟踪数据集
  2. 使用ASP.Net 3.5 的Ajax与Web服务开发实例
  3. Machine Learning - Andrew Ng on Coursera (Week 5)
  4. 再也不怕别人动电脑了!用Python实时监控
  5. 架构师成长之路:如何保证消息队列的高可用
  6. localdatetime 默认时间_java中的时间与时区:LocalDateTime和Date
  7. Leaflet笔记-把leaflet-tilelayer-wmts移植到vue cli中(含思路)
  8. mac系统虚拟机上的Linux系统的使用说明
  9. mysql 连接其他数据库_普通用户从其他主机连接MySQL数据库
  10. 执行import xlrd,报错ModuleNotFoundError: No module named 'xlrd'
  11. MikroTik RouterOS电子克隆盘原理收集
  12. 虚拟化技术天书:九宫格图解虚拟化——此文多风险,阅读需谨慎
  13. 使用Zabbix Agent 2监控MongoDB
  14. Hulk容器服务的镜像CI解决方案
  15. Error: Failed to launch the browser process!
  16. [translate]Multimodal Self-Paced Learning for Multi-Omics Feature Selection and Data Integration
  17. java for 代表什么意思_java中for是什么意思?
  18. INSTALL_FAILED_NO_MATCHING_ABIS 的解决办法
  19. oculus 登录 错误代码 ovr40779122
  20. NASA电池数据集内容说明

热门文章

  1. 深度学习数学基础介绍(二)概率与数理统计
  2. Hadoop使用伪分布式的搭建
  3. 刚体验完RabbitMQ?一文带你SpringBoot+RabbitMQ方式收发消息
  4. BloomFilter
  5. 安装php_soap.dll,php如何安装soap扩展
  6. hive中生成32位uuid
  7. Peter Schiff:如果大饼跌破3万刀,那么它将跌破1万
  8. 远程控制网吧服务器,方便维修,电脑坏了不用愁,向日葵电脑远程维修省时又省力...
  9. python中排序从小到大_python怎么从小到大排列
  10. PS教程:仙气十足的摄影后期技巧