首页 > 数据库 >【Mybatis】常用的标签积累<sql>、<where>等

【Mybatis】常用的标签积累<sql>、<where>等

时间:2023-06-27 12:01:36浏览次数:40  
标签:积累 语句 product orderitem 标签 sql Mybatis id

一· 常用标签组示例:

 

二、部分标签总结
1.sql片段标签<sql>:

通过该标签可定义能复用的sql语句片段,在执行sql语句标签中直接引用即可。这样既可以提高编码效率,还能有效简化代码,提高可读性, 需要配置的属性:id="" >>>表示需要改sql语句片段的唯一标识
引用:通过<include refid="" />标签引用,refid="" 中的值指向需要引用的<sql>中的id=“”属性

<!--定义sql片段-->
<sql id="orderAndItem">
o.order_id,o.cid,o.address,o.create_date,o.orderitem_id,i.orderitem_id,i.product_id,i.count
</sql>

<select id="findOrderAndItemsByOid" parameterType="java.lang.String" resultMap="BaseResultMap">
select
<!--引用sql片段-->
<include refid="orderAndItem" />
from ordertable o
join orderitem i on o.orderitem_id = i.orderitem_id
where o.order_id = #{orderId}
</select>


下面是一些常用的动态语句标签:通过动态sql标签可以进行条件判断,条件遍历等操作从而满足结果的需要

2. <where> 标签:
使用其可以代替sql语句中的where关键字,一般防止在条件查询的最外层

3. <set> 标签:
与where标签类似 常用于<update>更新语句中,替代 sql中的“set”关键字,特别是在联合<if>进行判断是,可以有效防止当某个参数为空或者不合法是错误的更新到数据库中


4. <if > 标签:
条件判断标签,配置属性test=" 条件字符串 ",判断是否满足条件,满足则执行,不满足则跳过

<select id="findOrderItemDetail" parameterType="pojo.Orderitem" resultMap="BaseResultMap">
select orderitem.orderitem_id,product.*
from orderitem,product
<where>
<if test="orderitemId!=null and orderitemId!=''">
and orderitem.orderitem_id = #{orderitemId}
</if>
<if test="productId!=null and productId!=''">
and orderitem.product_id = #{productId}
</if>
<if test="count!=null">
and orderitem.count = #{count}
</if>
</where>
</select>

5.<choose></choose>标签组:

完整标签结构如下:

<choose>

<when></when>
<when></when>

<otherwise></otherwise>
</choose>


choose标签组也是一个用于条件判断的标签组,和<if>的不同之处在于条件从<choose>进入,去匹配<when>中的添加,一旦匹配马上结束;若到找不到匹配项,将执行<other>中的语句;可以理解为<if>是 && 关系 <choose>是 || 关系,中间的<when></when>可以根据情况添加多组,执行效果类似swich case。

 

6. <foreach>标签:
该标签的作用是遍历集合类型的条件 ,类似与Angular中的*ngFor指令
属性:collection=“array” / collection = “list” ----->是数组类型,还是集合类型 item=“ productId ”------> 参数名
open="(" separator="," close=")" ------>开始符号,分隔符号,结束符号
index=“ ” ---->结束下标位置,不配置该参数时,默认为全部遍历

<delete id="deleteByPriKeys" parameterType="java.lang.String">
delete from product where product_Id in
<foreach collection="list" item="productId" open="(" separator="," close=")">
#{productId,jdbcType = VARCHAR}
</foreach>
</delete>
————————————————
版权声明:本文为CSDN博主「Hepburn Yang」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/YYZZHC999/article/details/82319305

标签:积累,语句,product,orderitem,标签,sql,Mybatis,id
From: https://www.cnblogs.com/dongfangzhaoyue/p/17508305.html

相关文章

  • MyBatis的映射关系
    MyBatis的映射关系是有一个默认的,采用下划线命名的方式将数据库表的列名按照驼峰式映射成Java实体类的属性名举个例子数据库表名为 tb_user,其中的字段名为 inst_code,对应的实体类属性名为 instCode,这样不用自定义映射关系,会默认二者相对应的我们也可以自定义映射关系以一......
  • 前端Vue自定义验证码密码登录切换tabs选项卡标签栏标题栏 验证码登录模版 密码登录模
    前端Vue自定义验证码密码登录切换tabs选项卡标签栏标题栏验证码登录模版密码登录模版,请访问uni-app插件市场地址:https://ext.dcloud.net.cn/plugin?id=13221效果图如下:实现代码如下:cc-selectBox使用方法<!--select-arr:选择数组nowindex:当前选择序列@change:切换选择......
  • 【CSS】写一个原生的透明 input 标签输入框
    <divclass="search"> <imgsrc="@/assets/tools/search.svg"/> <inputplaceholder="搜索"@input="onSearch"v-model="searchValue"/></div>.search{ height:32px; width:204px; di......
  • JS canvas 标签制作色相球
    <!DOCTYPEhtml><html><head><metacharset="UTF-8"/><title>JScanvas标签制作色相球</title></head><body><canvas></canvas><scripttype="text/javascript">varcanvas,ctx,ma......
  • Mybatis 使用汇总(介绍,功能,连接池,日志,注解,XML映射文件)
    Mybatis介绍Mybatis功能Mybatis连接池mybatis日志Mybatis注解MybatisXML映射文件01.Mybatis是一款优秀的持久层框架(DAO),它支持自定义SQL、存储过程以及高级映射。MyBatis免除了几乎所有的JDBC代码以及设置参数和获取结果集的工作。MyBatis可以通过简单的XML......
  • mybatis中数据库连接池切换到更优秀的连接池上
    数据库连接池切换mybatis中数据库连接池比较流行,性能优越的有2个:数据库连接池技术:A.Hikari(springboot默认)追光者B.Druid(德鲁伊)1Druid(德鲁伊)Druid连接池是阿里巴巴开源的数据库连接池项目功能强大,性能优秀,是Java语言最好的数据库连接池之一2Hikari(springboot默认3.把默......
  • Mybatis中Example的用法(QBC查询)
    QBC查询QueryByCriteria。Criteria是Criterion的复数形式。意思是:规则、标准、准则。在SQL语句中相当于查询条件。QBC查询是将查询条件通过Java对象进行模块化封装。Example简单介绍其实就是一个工具,自动帮你生成对应的代码1.example是Mybatis数据层框架中的一个工具,......
  • Mybatis通用Mapper接口扩展
    这里的扩展指的是通用Mapper没有提供的功能,如批量update。例子:类似于生成下面这样的SQL语句:UPDATEtabple_empSETemp_name=?,emp_age=?,emp_salary=?whereemp_id=?;UPDATEtabple_empSETemp_name=?,emp_age=?,emp_salary=?whereemp_id=?;UPDATEtabple_empSETem......
  • mybatis中如何获取自增主键
    方法1:在insert标签中使用userGeneratedKeys和keyProperty标签:<insertid=”insertname”usegeneratedkeys=”true”keyproperty=”id”>insertintonames(name)values(#{name})</insert>useGeneratedKeys=true表示开启自动生成主键的功能,keyProperty="id"指......
  • MyBatis 缓存
     MyBatis一级缓存1一级缓存原理在一次SqlSession中(数据库会话),程序执行多次查询,且查询条件完全相同,多次查询之间程序没有其他增删改操作,则第二次及后面的查询可以从缓存中获取数据,避免走数据库。 每个SqlSession中持有了Executor,每个Executor中有一个LocalCache。当用......