Spring5使用JDBCTemplate批处理添加数据时提示SQL语法有错
目录
- 问题描述
- 解决方案
问题描述
今天在使用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语法有错相关推荐
- ESXI添加硬盘时提示 无法创建 VMFS 数据存储 - 无法更改主机配置
ESXI添加硬盘时提示 无法创建 VMFS 数据存储 - 无法更改主机配置 1.打开ESXI的SSH 2.找到不能添加的硬盘路径 3.用SSH操作 1.打开ESXI的SSH 2.找到不能添加的硬盘路径 ...
- MySQL 数据库添加数据时为什么会产生外码(外键)约束?原理就是什么?如何解决?
文章目录 前言 一.插入新数据时报错外键约束? 二.对于出错 SQL 语句的分析 三.对于外码约束的分析 四.如何处理外键约束? 总结 前言 我们在使用 MySQL 数据库时,添加数据如果设计不合理很 ...
- Navicat向sqlserver中插入数据时提示:当 IDENTITY_INSERT 设置为 OFF 时,不能向表中的标识列插入显式值
场景 通过Navicat向sqlserver中插入一条数据时提示: 解决 这是因为在设计表时,将主键ID设置为自增约束,当插入数据或者执行插入语句时,如果包含这个 主键字段,就会提示错误. 打开数据库 ...
- XP添加权限时提示:无法显示用户选项对话框的解决方法!
症状: 打开共享权限添加用户无法打开 出现" 安全:无法显示用户选项对话(null)" 如图: 解决方法: 第一种方法是: 将别人WINDOWS SYSTEM32 文件夹下的ric ...
- DB2添加数据时主键、唯一键冲突的解决方法
DB2添加数据时主键.唯一键冲突的解决方法 参考文章: (1)DB2添加数据时主键.唯一键冲突的解决方法 (2)https://www.cnblogs.com/equation/articles/91 ...
- Idea添加Jetty时提示JMX module is not included
添加jetty时提示下图 此时,我们应该编辑jetty根目录下start.ini添加 --module=jmx 此时就可以成功添加了 原因:在9.07的时默认情况是设置了 "OPTIONS= ...
- 用Navicat for MySQL往数据表中添加数据时汉字出现乱码
添加数据时,记录中为汉字的字符串,显示为? 出现问题的原因:编码格式错误. 在设计表中修改,不起作用 重新建立数据库,设置编码格式,重新创建表,添加记录,成功. 创建数据库时要设置编码格式,如图所示 ...
- C#使用OleDB操作ACCESS插入数据时提示:标准表达式中数据类型不匹配。
C#使用OleDB操作ACCESS插入数据时提示:标准表达式中数据类型不匹配. OleDbParameter param = new OleDbParameter("" + dc. ...
- C#使用OleDB操作ACCESS插入数据时提示:参数 @p_Contract 没有默认值
C#使用OleDB操作ACCESS插入数据时提示:参数 @p_Contract 没有默认值 OleDbParameter param = new OleDbParameter("" ...
最新文章
- 352万帧标注图片,1400个视频,亮风台推最大单目标跟踪数据集
- 使用ASP.Net 3.5 的Ajax与Web服务开发实例
- Machine Learning - Andrew Ng on Coursera (Week 5)
- 再也不怕别人动电脑了!用Python实时监控
- 架构师成长之路:如何保证消息队列的高可用
- localdatetime 默认时间_java中的时间与时区:LocalDateTime和Date
- Leaflet笔记-把leaflet-tilelayer-wmts移植到vue cli中(含思路)
- mac系统虚拟机上的Linux系统的使用说明
- mysql 连接其他数据库_普通用户从其他主机连接MySQL数据库
- 执行import xlrd,报错ModuleNotFoundError: No module named 'xlrd'
- MikroTik RouterOS电子克隆盘原理收集
- 虚拟化技术天书:九宫格图解虚拟化——此文多风险,阅读需谨慎
- 使用Zabbix Agent 2监控MongoDB
- Hulk容器服务的镜像CI解决方案
- Error: Failed to launch the browser process!
- [translate]Multimodal Self-Paced Learning for Multi-Omics Feature Selection and Data Integration
- java for 代表什么意思_java中for是什么意思?
- INSTALL_FAILED_NO_MATCHING_ABIS 的解决办法
- oculus 登录 错误代码 ovr40779122
- NASA电池数据集内容说明
热门文章
- 深度学习数学基础介绍(二)概率与数理统计
- Hadoop使用伪分布式的搭建
- 刚体验完RabbitMQ?一文带你SpringBoot+RabbitMQ方式收发消息
- BloomFilter
- 安装php_soap.dll,php如何安装soap扩展
- hive中生成32位uuid
- Peter Schiff:如果大饼跌破3万刀,那么它将跌破1万
- 远程控制网吧服务器,方便维修,电脑坏了不用愁,向日葵电脑远程维修省时又省力...
- python中排序从小到大_python怎么从小到大排列
- PS教程:仙气十足的摄影后期技巧