首页 > 数据库 >7.动态SQL

7.动态SQL

时间:2023-11-24 17:55:06浏览次数:42  
标签:片段 遍历 元素 SQL 动态 id 属性

动态SQL

简介:

  • 随着用户的输入或外部条件的变化而变化的SQL语句,我们称为动态SQL

  • 写在XML映射文件中;

元素:

1.<if></if>:
作用
  • 用于判断条件是否成立;
属性:
  • text属性:用于条件判断,如果条件为true,则拼接SQL,判断条件为实体类属性名;
例子:
<if test="name != null">
	AND author_name like #{name}
</if>
2.<where></where>:
作用
  • where元素在子句存在才会在SQL中插入where;会自动去除子句的开头为 “AND” 或 “OR”;
3.<set></set>:
作用
  • set元素会动态地在行首插入 SET 关键字,并会删掉额外的逗号。(用在update语句中);
4.<foreach></foreach>:
作用
  • foreach可以对集合进行遍历;
属性:
  • collection:遍历的集合
  • item:遍历出来的元素
  • separator:分隔符
  • open:遍历开始前拼接的SQL片段
  • close:遍历结束后拼接的SQL片段
例子:
<delete id="deleteByIds">
	delete from emp where id in
	<foreach collection="ids" item="id" separator="," open="(" close=")">
		#{id}
	</foreach>
</delete>
5.<sql></sql> 和 <include>
作用:
  • <sql>:用于公共的sql片段的抽取;
  • <include>:用于将sql片段的引用;
属性:
  • id:<sql>元素中的属性,给这个sql片段命名,供<include>元素引用;
  • refid:<include>元素中的属性,用于引用对应id的sql片段;
例子:
<sql id="commonSelect">
	select id,username,password,name,gender,image,job,entrydate,dept_id,create_time,update_time from emp
</sql>
<select id="list" resultType="com.caihongjia.pojo.Emp">
	<include refid="commonSelect" />
</select>

标签:片段,遍历,元素,SQL,动态,id,属性
From: https://www.cnblogs.com/chj020415/p/17854388.html

相关文章

  • Mysql基础操作(命令行)
    一、背景docker安装mysql8,映射本地端口3306二、创建数据库createdatabasemyblogcharset=utf8; 三、选择数据库usemyblog;  四、查看所有表showtables;  五、查看表结构descmm_t_user;  showcolumnsfrommm_t_user;  六、向表......
  • 17-基础SQL-函数-日期函数
    什么是函数:是指一段可以直接被另一段程序调用的程序或代码MySQL的函数主要包括:字符串函数、数值函数、日期函数、流程函数。日期函数常见的日期函数如下:CURDATE()演示:返回当前日期SELECTCURDATE();CURTIME()演示:返回当前时间SELECTCURTIME();NOW()演示:返回当......
  • SqlServer 数据库表死锁
    数据库表死锁 spid  锁表进程tableName  被锁表名declare@spid intSet@spid =618--锁表进程declare@sqlvarchar(1000)set@sql='kill'+cast(@spid asvarchar)exec(@sql)select  request_session_id  spid,OBJECT_NAME(resource_associated_entity_i......
  • sqlserver 中将存入值编码‘1,2,3’查询返回编码对应名称‘张三,李四,王五’
    select(selectMouldNamefrommould_MouldwhereMouldCode=a.MouldCode)MouldName,(selectSpecsfrommould_MouldwhereMouldCode=a.MouldCode)MouldSpecs,STUFF((SELECT','+f.ProcessNameFROMmes_ProcessfWHERECH......
  • mysql学习
    目录mysql语法规范NavicatforMysql的使用SELECT运行的本质基础查询语句最简单的查询查询字段重命名AS去重复DISTINCT字段连接CONCAT()字段值为空怎么填值mysql语法规范不区分大小写,但建议关键字大写,表名和列名小写每条命令用英文的分号结尾每条命令根据需要,可以进行缩......
  • 【ORACLE】OALL8 处于不一致状态 SQL Error: 17447, SQLState: null
    2023-11-24[http-nio-8080-exec-9]WARNorg.hibernate.engine.jdbc.spi.SqlExceptionHelper-SQLError:17447,SQLState:null2023-11-24[http-nio-8080-exec-9]ERRORorg.hibernate.engine.jdbc.spi.SqlExceptionHelper-OALL8处于不一致状态org.springframework.orm.jp......
  • docker-compose 安装Sql Server2019
    前言:本文将介绍如何在docker环境下搭建mssqlserver2019,帮助读者了解和使用。下面我将从所需基础环境,docker的安装,及docker-compose文件创建的几个方面展开介绍。一.基础环境虚拟机:Ubuntu20.04获取并下载:https://ubuntu.com/download/desktop安装虚拟机可以参考(博主:奔......
  • windows ubuntu 安装mysql
    一、介绍二、过程三、问题 一、介绍MySQL是一款开源的关系型数据库管理系统,是目前最流行的数据库之一。关键,免费,好用。二、过程1windows安装1.1下载下载地址:https://downloads.mysql.com/archives/installer/选择下面那......
  • mysql常用
    mysql自动更新时间自动获取创建时间:timestampnotnulldefaultCURRENT_TIMESTAMP自动获取更新时间:timestampnotnulldefaultCURRENT_TIMESTAMPonupdateCURRENT_TIMESTAMP  mysql datetimeMySQL导入数据库时报错:ERROR1292(22007):Incorrectdatetime......
  • 一文掌握MySQL多表查询技巧:告别繁琐操作,轻松搞定数据查询!
    在数据库的世界里,我们经常需要处理各种各样的数据。有时候,我们需要从多个表中查询数据,这时候就需要用到MySQL的多表查询了。今天,就让我们一起来了解一下MySQL多表查询的魅力吧!一、表的关系简介现实生活中,实体与实体之间肯定是有关系的,比如:部门和员工,老师和学生等。在设计表的时......