MyBatis的动态SQL元素。

元素 说明
<if> 判断语句,用于单条件分支判断
<choose>(<when>、<otherwise>) 相当于java中的switch...case...default语句,用于条件分支判断
<where>、<trim>、<set> 辅助元素,用于处理一些sql拼装、特殊字符问题
<foreach> 循环语句,常用语in语句等列举条件中
<bind> 从OGNL表达式中创建一个变量,并将其绑定到上下文,常用语模糊查询的sql中

注意1:

在映射文件中使用<set>和<if>元素组合进行update语句动态sql组装时,如果<set>元素内包含的内容都为空,则会出现sql语法错误。所以在使用<set>元素进行字段信息更新时,要确保传入的更新字段不能都为空。

注意2:

<foreach>元素中使用的几种属性

  • item:配置的是循环中当前的元素。
  • index:配置的是当前元素在集合的位置下标。
  • collection:配置的list是传递过来的参数类型(首字母小写),它可以是一个array、list(或collection)、Map集合的键、POJO包装类中数组或集合类型的属性名等。
  • open和close:配置的是以什么符号将这些集合元素包装过来。
  • separator:配置的是各个元素的间隔符。

collection属性最容易出错。该属性是必须指定的,而且在不同情况下,该属性的值是不一样的。主要有以下3种情况。

1. 如果传入的单参数且参数类型是一个数组或者list的时候,collection属性值分别是array和list(或collection)。

2. 如果传入的参数是多个的时候,就需要把它们封装成一个Map了,当然单参数也封装为Map集合,这时候collection属性值就为Map的键。

3. 如果传入的参数是pojo包装类的时候,collection属性值就为该包装类中需要进行的数组或集合的属性名。

所以在设置collection属性值的时候,必须按照实际情况配置,否则程序就会出现异常。

最新文章

  1. OpenGL ES 3.0: 图元重启(Primitive restart)
  2. JavaScript基础语法
  3. 【HEOI2012】采花 BZOJ2743
  4. 使用jenkins配置.net mvc网站进行持续集成一
  5. 网络编程(一)——InetAddress
  6. How to Map Distinct Value Types Using Java Generics--reference
  7. 堆排序 C++
  8. C语言中数据类型的长度
  9. React demo:express、react-redux、react-router、react-roter-redux、redux-thunk(一)
  10. 分布式改造剧集之Redis缓存采坑记
  11. 安卓开发笔记(十六):&#39;Request(okhttp3.Request.Builder)&#39; has private access in &#39;okhttp3.Request
  12. laravle 整合 thrift
  13. 我的第一篇博客:vue-cli配置项目
  14. 【面试】MySQL的事务和索引
  15. 关于JDBC技术中,调用MySQL中不建议在没有服务器身份验证的情况下建立SSL连接错误解决
  16. android studio使用CMake和NDK,实现应用自身被卸载时打开某一网址
  17. Use Dynamic Data Masking to obfuscate your sensitive data
  18. gym 101081 gym F. Auction of Services 最小生成树+倍增LCA
  19. ceph 问题处理
  20. 单细胞文章分享:Molecular Diversity of Midbrain Development in Mouse, Human, and Stem Cells

热门文章

  1. 无法加载模块 TP3.2
  2. python读取文件乱码
  3. linux shell 中&quot;2&gt;&amp;1&quot;含义-完美理解-费元星
  4. fiddler之编辑请求(composer)-发包
  5. 自动爬取代理IP例子
  6. python获取csv文本的某行或某列数据
  7. python+selenium控制浏览器窗口(刷新、前进、后退、退出浏览器)
  8. js 如何定义函数
  9. Binary Tree Level Order Traversal(二叉树广度优先遍历或逐层遍历)
  10. [BZOJ 3509] [CodeChef] COUNTARI (FFT+分块)