作为小猿一枚,记录一下工作中踩过的坑。

今天在修改别人的代码bug时,有一个需求是在做导出excel功能时,mybatis动态构建sql语句的时候,要根据传进来的map中的一个值来判断是不是null,从而需要关联另一张表取得数据。

SELECT

${col}.dic_value as ${col}

${col}

FROM

${tableName} t

left join t_admin_dic_values ${colList[index]} ON t.${colList[index]}=${colList[index]}.id

WHERE

t.id IN

#{item}

可以看到SELECT后的循环体是colList,由于我传进来的是一个Map,这里的optionList[index]用的是colList循环的角标,但是我一度忘记了optionList存的是String,所以我之前的判断optionList[index] != null" 一直报错,要加上'null'。

xml文件 $ 和 # 的区别

1.${}在预编的时候会直接被变量替换,但是存在被注入的问题,表名必须用${},因为#{}在预编的时候会被解析为?占位符,但当被变量替换的时候会加上 ‘’单引号,表明不允许加单引号(但是反引号``是可以的)

else if mybatis 嵌套_mybatis踩坑之——foreach循环嵌套if判断相关推荐

  1. 一次kvm嵌套虚拟化踩坑经历

    女主宣言 嵌套虚拟化就是虚拟化环境里再次进行虚拟化,简单的说就是虚拟机里运行虚拟机,听起来有点递归的感觉.那是不是可以无限嵌套下去呢?递归有终结条件,否则无限递归下去资源耗尽,嵌套虚拟化嵌套层次越深复 ...

  2. mybatis学习与踩坑记录

    mybatis resultmap高级映射 应用场景:如果sql查询的列名和pojo的属性名不一致,可以使用resultMap将列名和pojo的属性名作一个对应关系,就可以映射成功了.(如果返回值为i ...

  3. java的for循环嵌套_优化Java的for循环嵌套的高效率方法

    两个list中分别装有相同的对象数据. list1中有3万条对象数据. list2中有2万条对象数据(但是对象中的某个属性变量为空).两个list中的id或者其他变量都一模一样.请用最快的方式找出li ...

  4. c语言微课ppt嵌套函数,C语言课程中循环嵌套的微课教学设计与思考.pdf

    课程教学 Cur r i cul um Teac hi ng C语 言 课 程 中 循 环 嵌 套 的 微 课 教 学 设 计 与 思 考 陈磊魏林 ( 江西经济管理干部学院江西 ·南昌330088) ...

  5. c语言微课ppt嵌套函数,C语言课程中循环嵌套的微课教学设计与思考

    C语言课程中循环嵌套的微课教学设计与思考 2018-12-01 话题:教育学习,教学方法 摘 要 本文以C语言课程中循环嵌套内容为例,通过观看全国高校微课比赛获奖作品与专家点评得到启示,本科与高职的微 ...

  6. python两层for循环嵌套的执行过程_Python for循环嵌套

    Python for循环嵌套教程 Python for循环嵌套详解 语法 for i in cond1 { # do something for j in cond2 { for k in cond3 ...

  7. php嵌套循环太慢,php 大数组 foreach 循环嵌套的性能优化

    前提:最近在做后台的时候,页面加载太慢,故第一时间想到的自然是优化SQL, 优化后sql查询速度从 2秒变成了零点几秒, 以为就这麽完事了,然并卵,加载竟然花费30秒! 这麽慢,然后在代码中分块记录它 ...

  8. [Python] 小明又迟到了……一个故事讲清楚 Python 循环嵌套

    Python 语言允许在一个循环体里面嵌入另一个循环.循环嵌套的语法形式如下: 1.Python for 循环嵌套: 语法: for iteration_var in sequence:for ite ...

  9. python 的循环嵌套

    python 的循环嵌套 循环嵌套介绍 嵌套语法如下: for 循环嵌套语法: while 循环嵌套语法: 例子如下 循环嵌套介绍 Python 语言允许在一个循环体里嵌套另一个循环(可以一层嵌套一层 ...

最新文章

  1. MySQL的常用语法
  2. 参考使用CSDN-markdown编辑器以及复杂表格编辑
  3. python leetcode_LeetCode刷题——第8天(python)
  4. 我的MAXSCRIPT笔记
  5. 《C++标准程序库》学习笔记5 — 第七章
  6. vue项目安装引入css-loader - cmd篇
  7. linux 日志 \var\log
  8. [JavaScript]JavaScript处理iframe的动作
  9. python中label怎么绑定变量_Kivy将标签文本绑定到变量(仅限Python)
  10. oracle 9i故障恢复,Oracle9i rman备份恢复总结
  11. 慧荣科技亮相2017纽伦堡国际嵌入式应用展览会,主推采用3D NAND的BGA SSD新产品...
  12. 模拟Post登陆带验证码的网站
  13. 数据库知识点汇总(最全!!)
  14. 用于高性能分组处理的电力线滤波
  15. java文件上传判重姿势浅谈
  16. 远程桌面连接命令“Mstsc”,Windows系统连接远程方法
  17. 高德地图定位坐标偏差android,【报Bug】app端高德地图定位不准确
  18. html 调用es2015模块,ES 2015 Modules
  19. 运维学python用不上_运维朋友们,别再问需不需要学 Python 了!
  20. 10年小公司程序员收入多少?惊呆了

热门文章

  1. Flex DataGrid可编辑对象实现Enter跳转
  2. multiple problems have occured
  3. 移动三国己然鼎立,普​通开发者如何选择开发​平台?
  4. 虚拟化何以四两拨千斤
  5. 《当幸福敲门》克里斯·加德纳
  6. 用SAPI实现Speech Recognition(SR) - 命令控制模式
  7. copy elison RVO NRVO
  8. 【Java】 剑指offer(28) 对称的二叉树
  9. 查询出的数据记录字段要与实体类中的属性名一致
  10. 20145221 《信息安全系统设计基础》第3周学习总结