<foreach>

 <!-- foreach -->
<delete id="delMulti" parameterType="java.util.List">
delete from user where id in
<!--collection:输入参数为List集合时,必须写list,
item:为集合里的每一项起名,可以任意定义
separator:每一项中间的分割符
open:在执行循环体之前拼接的内容;
close:在执行循环体之后拼接的内容;-->
<foreach collection="list" item="uid" separator="," open="(" close=")">
#{uid}
</foreach>
</delete>

where

 <!--where:解析成where关键字,会自动去掉第一个符合条件的限定条件中的and -->
<select id="getByNameSex" parameterType="map" resultType="user">
select * from user
<where>
<if test="uname!=null and uname!=''">
and username like "%"#{uname}"%"
</if>
<if test="usex!=null and usex!=''">
and sex=#{usex}
</if>
</where>
choose when otherwise
  <!--choose when otherwise:某个判断满足条件后,其他条件就不会再执行  -->
<select id="getByNameSex1" parameterType="map" resultType="user">
select * from user where
<choose>
<when test="uname!=null and uname!=''">
username like "%"#{uname}"%"
</when>
<when test="usex!=null and usex!=''">
sex=#{usex}
</when>
<otherwise>
1=1
</otherwise>
</choose>
</select>

set

<!-- set:解析为set关键字,可以自动去掉最后一个更新的字段后面的逗号 -->
<update id="updUser" parameterType="user">
update user
<set>
<if test="username!=null and username!=''">
username=#{username},
</if>
<if test="sex!=null and sex!=''">
sex=#{sex}
</if>
</set>
where id=#{id}
</update>

trim:使用次数较少

<update id="updUser1" parameterType="user">
<!--prefix:前缀,在trim中内容执行之前拼接
suffix:后缀:在trim中内容执行之后拼接
suffixOverrides:忽略后缀
prefixOverrides:忽略前缀-->
<trim prefix="update user set" suffix="where id=#{id}" suffixOverrides=","> <if test="username!=null and username!=''">
username=#{username},
</if>
<if test="sex!=null and sex!=''">
sex=#{sex}
</if> </trim>
</update>

bind使用较少

<select id="getByUname" parameterType="string" resultType="User">
<!--name:新的字符串的变量名 -->
<bind name="uname" value="'%'+_parameter+'%'"/>
select * from user where username like #{uname}
</select>

Mybatis映射文件中的标签的使用的更多相关文章

  1. Mybatis映射文件中#取值时指定参数相关规则

    Mybatis映射文件中#取值时指定参数相关规则 在#{}中,除了需要的数值外,还可以规定参数的一些其他规则. 例如:javaType,jdbcType,mode(存储过程),numericScale ...

  2. Mybatis映射文件中的参数传递

    一.接口中只有一个参数 1.参数是基本类型or基本类型的包装类or字符串类型 这种情况下映射文件中#{}里的内容可以是任意的,你可以使用#{xxx} 或 #{abc} .....因为此时#{}相当于一 ...

  3. Mybatis映射文件中数据库表列名称和POJO成员域的联系

    下面是Mybatis的SQL映射文件. <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE ma ...

  4. 018 关联映射文件中<class>标签中的lazy(懒加载)属性

    Lazy(懒加载): 只有在正真使用该对象时,才会创建这个对象 Hibernate中的lazy(懒加载): 只有我们在正真使用时,它才会发出SQL语句,给我们去查询,如果不使用对象则不会发SQL语句进 ...

  5. 019 关联映射文件中集合标签中的lazy(懒加载)属性

    <set>.<list>集合上,可以取值:true/false/extra,(默认值为:true) 实例一:(集合上的lazy=true(默认))class默认lazy=tru ...

  6. [刘阳Java]_MyBatis_映射文件的常用标签总结_第5讲

    MyBatis中常用标签的总结,简单给出自己的总结 MyBatis映射文件中的标签使用介绍1.<select>:用于编写查询语句用的标签 id:表示当前<select>标签的唯 ...

  7. [刘阳Java]_MyBatis_映射文件的select标签入门_第3讲

    1.Mybatis映射文件的<select>标签主要帮助我们完成SQL语句查询功能,<select>标签它包含了很多属性,下面简单对<select>标签的属性做一个 ...

  8. MyBatis 映射文件详解

    1. MyBatis 映射文件之<select>标签 <select>用来定义查询操作; "id": 唯一标识符,需要和接口中的方法名一致; paramet ...

  9. Mybatis映射文件标签(关于sql)

    Mybatis映射文件 1.接口的全限定名和映射文件的namespace一致 <mapper namespace="com.offcn.dao.UserDao"> 2. ...

随机推荐

  1. 【买衣服】I'm looking for a jacket

    核心句型: I 'm looking for a jacket. 我想买一件夹克. 场景对话 A: Are you looking for anything? 您想买什么吗? B: Yes. I'm ...

  2. 201871010110-李华《面向对象程序设计(java)》第十周学习总结

    项目 内容 这个作业属于哪个课程 https://www.cnblogs.com/nwnu-daizh/ 这个作业的要求在哪里 https://www.cnblogs.com/nwnu-daizh/p ...

  3. SpringBoot整合FastDFS实现图片的上传

     文件的上传和预览在web开发领域是随处可见,存储的方式有很多,本文采用阿里巴巴余庆大神开发的FastDFS进行文件的存储,FastDFS是一个分布式文件存储系统,可以看我上一篇博文,有安装和配置教程 ...

  4. NOIP 1999 导弹拦截

    洛谷 P1020 导弹拦截 https://www.luogu.org/problemnew/show/P1020 JDOJ 1411: [NOIP1999]拦截导弹 T1 https://neooj ...

  5. 缓存原理,自己写一个缓存类(c#版)

    .net中的MemoryCache是通过内部封装一个静态Dictionary 自己写一个缓存,来看看内部怎么实现的 public class CustomerCache : ICache { priv ...

  6. 学习:反调试之ZwQueryInformationProcess

    SetUnhandledExceptionFilter触发条件:1.当程序有异常,且没相应的处理 2.没有人进行反调试,满足这两个条件的时候,就会其中传输的参数(实则就是一个异常处理函数) 来进行处理 ...

  7. [NOIP2015]运输计划 线段树or差分二分

    目录 [NOIP2015]运输计划 链接 思路1 暴力数据结构 思路2 二分树上差分 总的 代码1 代码2 [NOIP2015]运输计划 链接 luogu 好久没写博客了,水一篇波. 思路1 暴力数据 ...

  8. 【贪心】umi的函数

    原题传送门 思路 这道题乍一看很难,然而实际在草纸上一模拟,结果就出来了. 分析:这道题实际上要么无解,要么有无数个解,因而题目只要求输出了一个解(明白这点题目就做出来一半了). 题中,规定所求z满足 ...

  9. JAVA开发者大会-Spring Cloud网关分享

    新书购买:单本75折包邮

  10. 目标检测 <二> TensorFlow安装

    一:创建TensorFlow工作环境目录 1. 在anconda安装目录下找到envs目录然后进入 2. 在当前目录下创建一个文件夹改名为tensorflow 二: 创建TensorFlow工作环境 ...