<sql id=””></sql>:封装sql语句,被其他sql调用

<include refid=””></include>:调用封装sql

<if test=” title_name != null”>AND title_name =#{titleName}</if>:判断标签,

<choose></choose>:相当于java中的switch语句。当when条件满足时,输出when条件中的语句,可以有多个when语句。当when条件不满足时,输出otherwise中的语句,myBatis会自动忽略首个and或or,where1=1当条件都等于null是查全表

select * from from_name where 1=1

<choose>

<when test=” title_name != null”>

AND title_name =#{titleName}

</when>

<otherwise>

AND title_name =#{titleName}

</otherwise>

</choose>

<set></set>:主要用于更新操作,作用是在包含的语句前输出第一个set,如果包含的语句是以逗号结尾的,会忽略该逗号,如果set的内容为空,会报错,使用set可以动态的更新sql

update from_name

<set>

<if test=”title != null”> title = #{title},</if>

<if test = “content != null”> content = #{content},</if>

<if test= “name != null AND name != ‘’ ”>name=#{name}</if>

</set>

where id=#{id}

<trim></trim>:在自己包含的内容前加上前缀或后缀,与之对应的属性是prefix和suffix,可以把包含内容的首部某些内容覆盖既忽略,也可以把尾部某些内容覆盖,与之对应的属性是prefixOverrides和suffixOverrides,通常使用trim代替where

select * from from_name

<trim prefix=”where”prefixOverrides=”and | or”>

<if test = “title != null”>AND title=#{title}</if>>

<if test= “name != null”>AND name=#{name}</if>

</trim>

<foreach></foreach>:循环,它可以在sql中进行迭代一个集合,主要属性:

item:表示集合每次迭代时属性的别名,在list和数组中是对象,在map中是value。该参数是必须的

collection:集合用array代替为主键

list<?>对象默认用list代替为主键

map对象用map代替为主键

当参数为某个对象的字段时:

如果User有属性List ids。入参是User对象,那么这个collection = "ids"

如果User有属性Ids
ids;其中Ids是个对象,Ids有个属性List id;入参是User对象,那么collection
= "ids.id"。该参数是必须的

open:代码开始符,一般和close一起合用open=”(” close=”)”可选

close:代码关闭符,一般和close一起合用open=”(” close=”)”可选

separator:元素之间的分割符,例如在in()时,separato=”,”会自动在元素中间使用“,”隔开,避免手动输入sql错误。该参数可选

index:在list和数组中是元素的序号,在map中是key。该参数可选

删除例子

delete from
from_name id in

<foreach item
=“id”collection=”array”open=”(” separator = “,” close = “)”>

#{id}

</foreach>

myBatis数据库常用标签的更多相关文章

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

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

  2. MyBatis - 常用标签与动态Sql

    MyBatis常用标签 ● 定义sql语句:select.insert.delete.update ● 配置JAVA对象属性与查询结构及中列明对应的关系:resultMap ● 控制动态sql拼接:i ...

  3. [Mybatis]Mybatis 常用标签及功能整理

    Mybatis中生成动态SQL的标签有四类,分别是: if choose (when, otherwise) trim (where, set) foreach 1.if 当需要动态生成where条件 ...

  4. 9.mybatis动态SQL标签的用法

    mybatis动态SQL标签的用法   动态 SQL MyBatis 的强大特性之一便是它的动态 SQL.如果你有使用 JDBC 或其他类似框架的经验,你就能体会到根据不同条件拼接 SQL 语句有多么 ...

  5. Mybatis中常用的SQL

    1.BaseResultMap <resultMap id="BaseResultMap" type="com.stylefeng.guns.common.pers ...

  6. mapper.xml中的常用标签

    mybatis的mapper xml文件中的常用标签 https://blog.csdn.net/qq_41426442/article/details/79663467 SQL语句标签 1.查询语句 ...

  7. 9月5日网页基础知识 通用标签、属性(body属性、路径、格式控制) 通用标签(有序列表、无序列表、常用标签)(补)

    网页基础知识 一.HTML语言 HTML语言翻译汉语为超文本标记语言. 二.网页的分类 1.静态页面:在静态页面中修改网页内容实际上就是修改网页原代码,不能从后台操作,数据来只能来源于原于代码.静态网 ...

  8. mybatis的foreach标签

    今天写sql发现了一点问题,乱弄了好久算是搞定了.关于mybatis的批量插入使用foreach插入形式为: insert into role_privilege( role_id, privileg ...

  9. 01: html常用标签

    目录: 1.1 web开发的三把利器介绍 1.2 网页头部head标签中几个常用标签 1.3 html常用标签归类 1.4 input系列标签 1.5 HTML其他标签 1.1 web开发的三把利器介 ...

随机推荐

  1. 爆炸快求1~n有多少素数

    这个求一千亿以内的素数大约用6780ms #include <stdio.h> #include <iostream> #include <string.h> #i ...

  2. zookeeper详解

    ZooKeeper 1.Zookeeper(***必须掌握***) 官方网址:http://zookeeper.apache.org/ Ø 什么是Zookeeper? l  Zookeeper 是 G ...

  3. java Callable创建线程

    package com.java.concurrent; import java.util.concurrent.Callable; import java.util.concurrent.Execu ...

  4. Android 开发笔记___基本适配器的使用__BaseAdapter

    之前用到过ArryAdapter适用于纯文本的列表数据,SimpleAdapter适用于带图标的列表数据,但在实际应用中常常有更复杂的列表,比如同一项中存在多个控件,这时候用前面的两个会比较复杂,而且 ...

  5. JavaSE高级1

    内部类 内部类概念: 所谓内部类(Inner Class),顾名思义,就是将一个类定义在另一个类的内部.内部的类称之为内部类. 内部类的主要特点: 内部类可以很好的实现隐藏,可以使用protected ...

  6. [小程序开发] 微信小程序内嵌网页web-view开发教程

    为了便于开发者灵活配置小程序,微信小程序开放了内嵌网页能力.这意味着小程序的内容不再局限于pages和large,我们可以借助内嵌网页丰富小程序的内容.下面附上详细的开发教程(含视频操作以及注意事项) ...

  7. java 数据分页

    分页逻辑 import lombok.Data; /** * User eric * Date * Email yq@aso.ren */ @Data public class PageHelper ...

  8. 高阶函数实现AOP

    AOP(面向切面程序)的主要作用是把一些跟核心业务逻辑模块无关的功能抽离出来,这些跟业务逻辑无关的功能通常包括日至统计.安全控制.异常处理等.把这些功能抽离出来之后,再通过"动态织入&quo ...

  9. python进阶------进程线程(五)

    Python中的IO模型 同步(synchronous) IO和异步(asynchronous) IO,阻塞(blocking) IO和非阻塞(non-blocking)IO分别是什么,到底有什么区别 ...

  10. python logging模块+ 个人总结

    原文地址:http://www.cnblogs.com/sislcb/archive/2008/11/25/1340627.html 从Python2.3版本中开始引入的logging模块为应用提供了 ...