mybatis动态sql,常用元素介绍

mybatis动态sql,常用元素介绍mybatis 动态 sqlif 元素 choose when otherwisefor 元素 bing 元素 if 元素 choose when otherwisefor 元素 bing 元素

mybatis动态sql,常用元素介绍

if元素

<select id="findRole1" parameterType="string" resultMap="roleResultMap"> select role_no, role_name, note from t_role where 1=1 <if test="roleName != null and roleName !=''"> and role_name like concat('%', #{roleName}, '%') </if> </select> 

当参数“roleName”参数不为空的时候,就执行对“roleName”的模糊查询的操作。这个是经常用到的标签,需要重点掌握

choose、when、otherwise

<select id="findRole2" parameterType="role" resultMap="roleResultMap"> select role_no, role_name, note from t_role where 1=1 <choose> <when test="roleNo != null and roleNo !=''"> AND role_no = #{roleNo} </when> <when test="roleName != null and roleName !=''"> AND role_name like concat('%', #{roleName}, '%') </when> <otherwise> AND note is not null </otherwise> </choose> </select> 

choose、when、otherwise相当于java代码中的switch、case、default功能的语句,也是比较常用的标签,需要重点掌握。

foreach元素

<select id="findRoleByNums" resultMap="roleResultMap"> select role_no, role_name, note from t_role where role_no in <foreach item="roleNo" index="index" collection="roleNoList" open="(" separator="," close=")"> #{roleNo} </foreach> </select> 

foreach 元素是一个循环语句,他的作用是编译集合,往往作用与SQL中的in关键字。

  • collection:配置的是传过来的参数名称,他可以是一个数组或者集合
  • open、close:是表示用什么符号将这些集合元素包装起来
  • separator:用什么符号间隔起来
  • index:这个就比较明显了,数据数据的下标
  • item:配置的是循环当中的元素
    使用foreach时,如果作用于in关键字,需要考虑SQL语句的长度,因为有的数据库对SQL语句的长度是有限制的

bing元素

<select id="findRole" parameterType="string" resultMap="roleResultMap"> <bind name="pattern" value="'%'+_parameter+'%'"></bind> select role_no, role_name, note from t_role where role_name like #{pattern} </select> 

bind 元素可以从 OGNL 表达式中创建一个变量并将其绑定到上下文,这样更方便使用。在进行模糊查询的时候,我们mysql数据库,常常用到的是concat来连接数据库:concat(’%’,name,’%’),而oracle这是用“||”来连接,但是我们用bind来定义一个变量,就不用管数据库语言了,兼容性更强。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/232860.html原文链接:https://javaforall.net

(0)
上一篇 2025年9月5日 上午10:01
下一篇 2025年9月5日 上午10:22


相关推荐

  • 最全哈夫曼树哈夫曼编码讲解,兄弟你值得拥有

    最全哈夫曼树哈夫曼编码讲解,兄弟你值得拥有目录 1 哈夫曼树的概念 nbsp nbsp nbsp nbsp nbsp nbsp 路径概念 nbsp nbsp nbsp nbsp nbsp nbsp 路径长度概念 nbsp nbsp nbsp nbsp nbsp nbsp 节点的带权路径长度 nbsp nbsp nbsp nbsp nbsp nbsp 树的带权路径长度 2 构建哈夫曼树的步骤 3 构建哈夫曼树的完整代码 4 哈夫曼编码 1 哈夫曼树的概念在正式

    2026年3月17日
    2
  • python3.9多线程_python创建多线程

    python3.9多线程_python创建多线程什么是线程?线程也叫轻量级进程,是操作系统能够进行运算调度的最小单位,它被包涵在进程之中,是进程中的实际运作单位。线程自己不拥有系统资源,只拥有一点儿在运行中必不可少的资源,但它可与同属一个进程的其

    2022年7月28日
    8
  • python基础(5)字典「建议收藏」

    python基础(5)字典「建议收藏」字典字典的key和value一一对应的,字典是可变的,也是有序的(python3.6版本开始字典有序),可迭代的增加元素当key不存在时,直接赋值a={"status"

    2022年7月28日
    9
  • JavaScript与Java的关系(联系与区别)

    JavaScript与Java的关系(联系与区别)JavaScript和Java是两种不一样的语言,但是它们之间存在联系。背景方面Javascript(1995年,Netscape公司雇佣了程序员BrendanEich开发这种网页脚本语言)最初名字叫做Mocha,1995年9月改为LiveScript。12月,Netscape公司与Sun公司(Java语言的发明者和所有者)达成协议,后者允许将这种语言叫做JavaScript。这样一来,Netsc

    2022年7月7日
    21
  • 即梦新升级了一个扶持计划,要让AI创作者不再“为爱发电”

    即梦新升级了一个扶持计划,要让AI创作者不再“为爱发电”

    2026年3月12日
    2
  • windows如何设置定时关机「建议收藏」

    windows如何设置定时关机「建议收藏」电脑定时关机是通过shutdown这个命令来实现的,不论是windows还是linux,这个命令都是关机的意思。下面我们简要的介绍一下windows如何定时关机:思路一:通过shutdown这个命令加参数来实现按“win+R”(注win键即指windows徽标键,该键的最明显的标识就是在键面上有个Windows的徽标),此时会弹出“运行”对话框,如下图所示。在对话框的编辑栏里输入“Shutdown…

    2022年5月14日
    56

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号