困扰了三天的问题,报错内容如下

2020-08-10 17:31:57.501  INFO 3040 --- [nio-8880-exec-2] c.h.r.a.controller.QuestionController    : insertQuestion: params data ===> [{"answer":"你是猪吗","degree":0,"domain":0,"image":"你是猪吗","question":"你是猪吗"}]
2020-08-10 17:31:57.609  INFO 3040 --- [nio-8880-exec-2] o.s.b.f.xml.XmlBeanDefinitionReader      : Loading XML bean definitions from class path resource [org/springframework/jdbc/support/sql-error-codes.xml]
2020-08-10 17:31:57.673 ERROR 3040 --- [nio-8880-exec-2] com.hi.rongyao.base.BaseController       :   请求路径:/question/insert  请求方式:POST  url拼接参数:null
2020-08-10 17:31:57.677  WARN 3040 --- [nio-8880-exec-2] .m.m.a.ExceptionHandlerExceptionResolver : Resolved [org.springframework.jdbc.BadSqlGrammarException:
### Error updating database.  Cause: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: 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 'option, image, answer, degree, domain)values' at line 2
### The error may involve com.hi.rongyao.affair.mapper.QuestionMapper.insertQuestion-Inline
### The error occurred while setting parameters
### SQL: insert into  question (          question, option, image, answer, degree, domain         )         values                     (           ?, ?, ?, ?, ?, ?          )
### Cause: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: 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 'option, image, answer, degree, domain)values' at line 2
; bad SQL grammar []; nested exception is com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: 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 'option, image, answer, degree, domain)values' at line 2]

1、mybatis

 <!-- 新增问题  --><insert id="insertQuestion" parameterType="java.util.List"><!-- selectKey获取新增的主键 --><selectKey resultType="int" order="AFTER" keyProperty="id">select last_insert_id() as id</selectKey>insert into <include refid="table_name"></include>(question, option, image, answer, degree, domain)values<foreach collection="list" item="item" index="index" separator=",">(#{item.question}, #{item.option}, #{item.image}, #{item.answer}, #{item.degree}, #{item.domain})</foreach></insert> 

2、实体

public class Question {@Getter @Setter private Integer id;@Getter @Setter private String question;   // 问题@Getter @Setter private String option;   // 选项列表@Getter @Setter private String answer; // 答案@Getter @Setter private Integer degree;  // 难度 0-低 1-中 2-高@Getter @Setter private Integer domain;  // 范畴@Getter @Setter private String image;    // 图片@Getter @Setter private Date createTime; // 创建时间@Getter @Setter private Date updateTime;   // 更新时间
}

3、mapper

// 批量插入int insertQuestion(List<Question> list);

4、controller

    // 批量插入@RequestMapping(value = "/insert", method = RequestMethod.POST)public @ResponseBody ReturnObject insert(@RequestBody List<Question> list) {logger.info("insertQuestion: params data ===> " + JSON.toJSONString(list));questionService.insertQuestion(list);return new ReturnObject(ReturnCode.SUCCESS);}

由于是小白,一开始怎么也找不到问题原因所在,今天终于弄明白,原来是使用了mysql的关键字 option 导致的

天杀的,足足困扰了我三天,百思不得其解,小白踩的坑要填一下了

传送门,msql 保留关键字

https://www.cnblogs.com/wuyifu/p/5949764.html

java mybatis (批量) 插入实体报多个问号相关推荐

  1. mybatis批量插入oracle报表达式,mybatis oracle两种方式批量插入数据

    mybatis在oracle中批量插入数据时,单次批量大小有限制,批量插入时,单次批量过大,也会影响插入性能.故程序端也需要对应的限制. BEGIN insert into blacklist (id ...

  2. oracle批量插入报错,[数据库]Mybatis 批量插入数据 关于Oracle 批量插入报错:ORA

    [数据库]Mybatis 批量插入数据 关于Oracle 批量插入报错:ORA 0 2020-08-19 08:00:06 Mybatis 批量插入数据 关于Oracle 批量插入报错:ORA-009 ...

  3. Mybatis 批量插入报ORA-00933: SQL 命令未正确结束

    Mybatis 批量插入报ORA-00933: SQL 命令未正确结束 错误出现的场景是这样的,将多个月份的1000条数据分别插入到各月份表中. MySQL中,批量插入数据到表,会在一定程度提高效率. ...

  4. 解决Oracle+Mybatis批量插入报错:SQL 命令未正确结束

    Mybatis批量插入需要foreach元素.foreach元素有以下主要属性: (1)item:集合中每一个元素进行迭代时的别名. (2)index:指定一个名字,用于表示在迭代过程中,每次迭代到的 ...

  5. MyBatis 批量插入数据的 3 种方法

    批量插入功能是我们日常工作中比较常见的业务功能之一,之前我也写过一篇关于<MyBatis Plus 批量数据插入功能,yyds!>的文章,但评论区的反馈不是很好,主要有两个问题:第一,对 ...

  6. 公司新来个同事,MyBatis批量插入10w条数据仅用2秒,拍案叫绝!

    批量插入功能是我们日常工作中比较常见的业务功能之一,今天咱们来一个 MyBatis 批量插入的汇总篇,同时对 3 种实现方法做一个性能测试,以及相应的原理分析. 先来简单说一下 3 种批量插入功能分别 ...

  7. 批量插入数据库语句java_java相关:MyBatis批量插入数据到Oracle数据库中的两种方式(实例代码)...

    java相关:MyBatis批量插入数据到Oracle数据库中的两种方式(实例代码) 发布于 2020-7-22| 复制链接 本文通过实例代码给大家分享了MyBatis批量插入数据到Oracle数据库 ...

  8. mybatis批量插入(insert)和批量更新(update)

    文章目录 一.Mybatis批量插入 二.批量更新 前言:这两天在做mybatis批量插入和更新的时候,对这块不是很清楚,所以今天写篇文章,巩固加深印象. 一.Mybatis批量插入 批量插入的sql ...

  9. 【SpringBoot项目中使用Mybatis批量插入百万条数据】

    SpringBoot项目中使用Mybatis批量插入百万条数据 话不多说,直接上代码,测试原生批处理的效率 开始测试 背景:因为一些业务问题,需要做多数据源,多库批量查询.插入操作,所以就研究了一下. ...

  10. MyBatis批量插入(sqlserver BULK INSERT)

    MyBatis批量插入: 1. foreach方式 2.sqlsession + sqlsession.flushStatements方式: //        SqlSession sqlSessi ...

最新文章

  1. Go语言源码分析CAS的实现和Java如出一辙
  2. 改变gazebo背景颜色
  3. CF Educational Round 23 F.MEX Queries
  4. MybatisPlus中@TableField注解的使用
  5. document.getElementById() id是变量
  6. 双用户windows linux系统,Windows与Linux合二为一?终于能在windows上运行Linux了!
  7. emlog-博客定制版lu1.3主题模板
  8. c语言中的scanf在java中应该怎么表达,Scanner类。
  9. 如何枚举String类型的枚举?
  10. 数论知识(2)-------------欧拉函数
  11. 拓端tecdat:已迁离北京外来人口的数据画像
  12. final 类和不可变类
  13. 从RTS游戏看游戏开发
  14. 18年,中国互联网的产品墓场
  15. 2021年了!!Xftp新手的下载和安装教程(超详细),以及演示了远程登录和远程文件传输
  16. 幅频特性曲线matlab,幅频特性曲线的matlab模拟
  17. php生成随机小数保留一位,php生成0~1随机小数的方法(必看)
  18. Linux中vi命令编辑文件时显示行号
  19. 安卓机更新系统会卡吗_手机经常提示系统升级,到底要不要升级,看完你就明白了!...
  20. irobot扫地机器人 电压_iRobot Roomba 770 智能扫地机器人(宽幅电压)

热门文章

  1. 能力素质有所欠缺_任职资格体系之七:员工能力评价模型
  2. shopex4.8.5 php5.6,shopex v4.8.5 漏洞
  3. 技术类岗位面试中经典问题总结分享
  4. 使用阿尔卑斯山法进行高效时间管理
  5. mybatis处理多对一映射关系3- 分步查询和延迟加载
  6. ElasticSearch三种分页方式以及各优缺点(一文知道如何抉择)
  7. python123九宫格输入法_python制作朋友圈九宫格图片
  8. 白盒测试技术—逻辑覆盖方法
  9. mpvue(3)主页面搭建
  10. 北大计算机专业考研难不难,北京大学考研有多难 难考的原因是什么