Mybatis uncategorized SQLException for SQL []
今天用mybatis写了个查询代码,发现怎么样都报错,提示: uncategorized SQLException for SQL []; SQL state [null]; error code [0]; sql injection violation, syntax error: EOF : select * from\n \n\t\tinbound_detail\n\t \n where id in; nested exception is java.sql.SQLException: sql injection violation, syntax error: EOF : select * from\n \n\t\tinbound_detail\n\t \n where id in"
我的xml如下:
<select id="queryByIdList" resultMap="inboundDetailMap">
select * from
<include refid="TABLE_NAME"/>
where id in
<foreach collection="idList" item="item" index="index" open="(" separator="," close=")">
#{item}
</foreach>
</select>
java代码如下:
List<InboundDetailUniqueCodeDO> uniqueCodeDOList = inboundDetailUniqueCodeMapper.queryByUniqueCodeList(uniqueCodeList);
Map<Long,InboundDetailDO> inboundDetailIdMap = inboundDetailMapper.queryByIdList(uniqueCodeDOList.stream().map(InboundDetailUniqueCodeDO::getInboundDetailId).collect(Collectors.toList())
).stream().collect(Collectors.toMap(InboundDetailDO::getId,inboundDetailDO -> inboundDetailDO));
1
2
3
后面终于发现是因为当 uniqueCodeDOList结果为空的时候,会导致后面的in里面的条件为空导致有问题,改为下面这样就没问题了
List<InboundDetailUniqueCodeDO> uniqueCodeDOList = inboundDetailUniqueCodeMapper.queryByUniqueCodeList(uniqueCodeList);
Map<Long,InboundDetailDO> inboundDetailIdMap = MapUtils.EMPTY_MAP;
if(CollectionUtils.isNotEmpty(uniqueCodeDOList)){
inboundDetailIdMap = inboundDetailMapper.queryByIdList(uniqueCodeDOList.stream().map(InboundDetailUniqueCodeDO::getInboundDetailId).collect(Collectors.toList())).stream().collect(Collectors.toMap(InboundDetailDO::getId,inboundDetailDO -> inboundDetailDO));
}
Mybatis uncategorized SQLException for SQL []相关推荐
- mybatis项目报java.sql.SQLException: Numeric Overflow的异常
转载自:http://www.easytd.com/yichangjijin/d_1411081846.html 项目报java.sql.SQLException: Numeric Overflow的 ...
- MyBatis 源码分析 - SQL 的执行过程
本文速览 本篇文章较为详细的介绍了 MyBatis 执行 SQL 的过程.该过程本身比较复杂,牵涉到的技术点比较多.包括但不限于 Mapper 接口代理类的生成.接口方法的解析.SQL 语句的解析.运 ...
- mybatis delete返回值_面试:谈谈你对MyBatis执行过程之SQL执行过程理解
前言 在了解了MyBatis初始化加载过程后,我们也应该研究看看SQL执行过程是怎样执行?这样我们对于Mybatis的整个执行流程都熟悉了,在开发遇到问题也可以很快定位到问题. 更重要的,在面试中遇到 ...
- mybatis结合log4j打印SQL日志
mybatis结合log4j打印SQL日志 1.Maven引用jar包 默认的mybatis不能打印出SQL日志,不便于查看调试,需要结合log4jdbc-log4j2就可以完整的输入SQL的调试信息 ...
- 【深入浅出MyBatis系列八】SQL自动生成插件
为什么80%的码农都做不了架构师?>>> #0 系列目录# 深入浅出MyBatis系列 [深入浅出MyBatis系列一]MyBatis入门 [深入浅出MyBatis系列二]配置 ...
- mysql中00933错误_java.sql.SQLException: ORA-00933: SQL 命令未正确结束错误解决
在程序运行时,程序报sql错误"nested exception is java.sql.SQLException: ORA-00933: SQL 命令未正确结束",具体错误如下所 ...
- Mybatis入门之动态sql
Mybatis入门之动态sql 通过mybatis提供的各种标签方法实现动态拼接sql. 1.if.where.sql.include标签(条件.sql片段) <sql id="sel ...
- MyBatis超详细介绍——SQL语句构建器类
MyBatis超详细介绍--SQL语句构建器类 (本文作为学习笔记,了解更多请参考:MyBatis参考文档) MyBatis3提供了SQL类帮助构造SQL语句: private String sele ...
- Mybatis映射文件动态SQL语句-01
因为在很多业务逻辑复杂的项目中,往往不是简单的sql语句就能查询出来自己想要的数据,所有mybatis引入了动态sql语句, UserMapper.xml <?xml version=" ...
最新文章
- 德国版“非升即走”引发学界震荡!“临时工”干12年也难获教职,网友:全世界都在卷...
- python api开发用什么框架_python+requests接口自动化框架
- 第十三章:Java_反射机制
- caffe各种依赖包配置
- [转]SpringMVCfrom:form表单标签和input表单标签简介
- 谷歌手势插件--crxMouse Chrome™ 手势
- Cad二次开发版本集合2000-2022
- 如何屏蔽油管网页上的广告
- 前工程师讲解:开关电源设计-LLC电源
- 激活硬盘被关闭的DMA模式
- 框架-Laraver
- Google 镜像站搜集
- 如何将PDF文件转换成PPT
- AI in Finance<量化交易人工智能金融投资>(下)
- TLS远程信息泄露 心脏滴血 CVE-2014-0160 漏洞复现
- mysql日志文件名字_MySQL各类日志文件相关变量介绍
- oracle 对象类型是什么意思,Oracle对象类型 (转)
- 秦皇岛楼市迎来打折潮商家急于回笼资金
- mysql 如何把date转换数字_请教:mysql中,如何将date字段转换为int字段?
- vue中根据窗口的大小调整echarts图表的尺寸
热门文章
- matlab-干涉条纹图像条纹间距的自动识别(干涉条纹处理的基本方法)
- equinox p2_Equinox p2设置框架
- Java Hessian反序列化漏洞
- 常见的深度学习优化算法(概述)
- 再用电子计算机会计的,关于附发“中国人民建设银行会计核算应用电子计算机暂行规定》的通知...
- 前程无忧响应整改,推出企业账户个人实名、虚拟号、简历水印等措施
- 12306泄露的数据,快速查找有木有你的, 编程实现示例
- 欧姆龙njnx程序全部ST语言,非标设备的写法框架xyz气缸和报警,移位指令,处理检测ng写法
- 国家开放大学计算机系统与维护毕业论文,国家开放大学本毕业论文答辩流程
- 将VS Code打造成炫酷全能IDE