Mybatis SqlNode源码解析

Java39

1.ForEachSqlNode

mybatis的foreach标签可以将列表、数组中的元素拼接起来,中间可以指定分隔符separator

  <select id="getByUserId" resultmap="BaseMap">
    select <include refid="BaseFields"></include>
    from user
    <where>
      user_id in
      <foreach collection="userIdList" item="userId" open="(" separator="," close=")">
        #{userId}
      </foreach>
    </where>
  </select>

上面这段select sql代码使用了foreach标签,传入了一个userIdList的列表,首先会转化为一个ForeachSqlNode对象,经过处理后foreach标签里面的代码会解析成 (假设userIdList=[101,102,103])

(#{__frch_userId_0}, #{__frch_userId_1},#{__frch_userId_2}), 后续预处理值替换后就会变成 (101,102,103)

输入验证码查看隐藏内容

扫描二维码关注本站微信公众号 Johngo学长
或者在微信里搜索 Johngo学长
回复 svip 获取验证码
wechat Johngo学长

相关文章
Java

mybatis-plus笔记

新加代码生成器新版,基本配置完毕,其他细节自行修改 需要的基础:把我的MyBatis、Spring、SpringMVC就可以学习这个了! 为什么要学习它呢?MyBatisPlus可以节省我们大量工作时...
Java

Metro 界面设计案例

Metro是微软的一贯设计风格,相对Google的Material Desgin ,Metro更加的简洁,清晰明了。 Material 的设计也是很不错的,而且在Android,Web上都能经常看到M...
Java

Liunx-CentOS安装MySQL8

0 卸载 0.1 卸载原有的MariaDB 查看MariaDB安装包 rpm -qa | grep mariadb 卸载MariaDB rpm -e mariadb-libs-5.5.60-1.el7...
Java

javaweb之HttpSession对象

1.session会话追踪原理 客户端第一次请求服务端,服务端会创建一个session对象并且存储下来,之后会将session的唯一标识sessionId设置到响应头中传给客户端 客户端之后请求就会在...
Java

Java(8)数组

数组 数组存储相同类型值的序列。 声明数组 数组是一种数据结构,用来存储同一类型值的集合。通过一个整型下标(index,或称索引)可以访问数组中的每一个值。例如,如果a是一个整型数组, a[i]就是数...
Java

三流大学和一流大学学生的简历有什么区别?

最近,我写了一篇关于公司秋季招聘的文章,吸引了许多热切的合作伙伴。看着邮箱里各种各样的简历,我不禁觉得每个人都很喜欢奥冰。我知道我最近缺少教材,所以我疯狂地给我寄负面教材。[En]Recently, ...
Java

Java中的反射机制

1.聊聊Java中的反射机制 (1)先说说静态编译和动态编译: ①静态编译就是在编译的时候把你所有的模块都编译进exe里去,当你启动这个exe的时候所有模块都加载进来了。你写小程序没问题,但程序一大,...
Java

RabbitMQ 环境安装

每日一句 Wisdom is knowing what to do next, skill is knowing how to do it, and virtue is doing it. 智慧是知道...
Java

第一次的ssm整合

数据库表 导入依赖 ``` javax.servlet javax.servlet-api 4.0.1 provided org.junit.jupiter junit-jupiter-api ${j...
Java

Liunx-CentOS安装Nginx

# 查看nginx是否运行 ps -ef | grep nginx # 停止用stop、或者用kill /usr/local/nginx/sbin/nginx -s stop # 查询Nginx安装的...
Java

插入排序

插入排序 原理 第一步,保证([0,0])区间元素有序,因为只有一个元素,所以不需要过多考虑 第二步,保证([0,1])区间元素有序,如果第二个元素与前一个元素逆序,则交换位置 第三步,保证([0,2...