Mybatis-学习笔记(5)动态SQL
1、Mybatis采用功能强大的基于ONGL的表达式来完成动态SQL。
2、ONGL常用的元素有:
1》if
<if test="id != null ">and id = #{id}</if>
Mybatis中,#{id}表达式获取参数有两种方式:一是从HashMap中获取集合中的property对象;二是从Java Bean中获取property对象。
2》choose
<choose><when test="id != null">and id = #{id}</when><when test="loginname != null and password != null">and loginname = #{loginname} and password = #{password}</when><otherwise>and sex = '男'</otherwise> </choose>
3》where
<where><if test="state != null ">state = #{state}</if><if test="id != null ">and id = #{id}</if><if test="loginname != null and password != null">and loginname = #{loginname} and password = #{password}</if> </where>
where元素知道只有在一个以上的if条件有值的情况下才去插入where子句。而且,如果最后的内容是“and”或“or”开头,where元素也知道如何将它们去掉。
4》set
update tb_employee<set><if test="loginname != null">loginname=#{loginname},</if><if test="password != null">password=#{password},</if><if test="name != null">name=#{name},</if><if test="sex != null">sex=#{sex},</if><if test="age != null">age=#{age},</if><if test="phone != null">phone=#{phone},</if><if test="sal != null">sal=#{sal},</if><if test="state != null">state=#{state}</if></set> where id=#{id}
set元素可以动态前置set关键字,同时也会消除无关的逗号。
5》foreach
<select id="selectEmployeeIn" resultType="com.lfy.bean.Emp">SELECT *FROM tb_employeeWHERE ID in<foreach item="item" index="index" collection="list"open="(" separator="," close=")">#{item}</foreach> </select>
该元素主要应用于构建in条件语句。doreach元素的功能非常强大,它允许指定一个集合,声明可以用在元素体内的集合项和索引变量。也可以指定开闭匹配的字符串以及在迭代中间放置分隔符。
6》bind
<select id="selectEmployeeLikeName" resultType="com.lfy.bean.Emp"><bind name="pattern" value="'%' + _parameter.getName() + '%'" />SELECT * FROM tb_employeeWHERE loginname LIKE #{pattern} </select>
bind元素可以从ONGL表达式中创建一个变量并将其绑定到上下文。
转载于:https://www.cnblogs.com/ZeroMZ/p/11416619.html
Mybatis-学习笔记(5)动态SQL相关推荐
- MyBatis:学习笔记(4)——动态SQL
MyBatis:学习笔记(4)--动态SQL 转载于:https://www.cnblogs.com/MrSaver/p/7453949.html
- Mybatis学习笔记之---动态sql中标签的使用
动态Sql语句中标签的使用 (一)常用标签 1.<if> if标签通常用于WHERE语句中,通过判断参数值来决定是否使用某个查询条件, 他也经常用于UPDATE语句中判断是否更新某一个字段 ...
- Mybatis学习笔记13 - 动态sql之set标签
示例代码: 接口定义: package com.mybatis.dao;import com.mybatis.bean.Employee;public interface EmployeeMapper ...
- JavaWeb学习笔记(动态SQL)
JavaWeb学习笔记(动态SQL) 动态SQL中的元素 < if>元素 < choose>.< when>.< otherwise>元素 < w ...
- mybatis学习7之动态sql
动态sql环境搭建和数据准备 工具类,获取UUID package com.shan.utils;import org.junit.Test;import java.util.UUID;public ...
- mybatis学习笔记(7)-输出映射
2019独角兽企业重金招聘Python工程师标准>>> mybatis学习笔记(7)-输出映射 标签: mybatis [TOC] 本文主要讲解mybatis的输出映射. 输出映射有 ...
- 【应用篇】MyBatis学习笔记
MyBatis学习笔记 一 环境配置 1 什么是MyBatis? MyBatis 是支持普通 SQL 查询,存储过程和高级映射的优秀持久层框架.MyBatis 消除了几乎所有的 JDBC 代码和参 ...
- MyBatis学习笔记(1)—使用篇
MyBatis学习笔记(1)-使用篇 MyBatis学习笔记(2)-映射关系篇 MyBatis学习笔记(3)-高级映射之一对一映射 Mybatis学习笔记(4)-高级映射之一对多映射 Mybatis学 ...
- 超详细Mybatis学习笔记(可供下载)
文章目录 1.简介 2.第一个Mybatis程序 搭建环境 编写代码 测试 3.CRUD(增删改查) 3.1.几个属性 3.2.select 3.3.insert 3.4.delete 3.5.upd ...
- [MyBatis学习笔记] 二、Mybatis基本操作及相关标签介绍
[MyBatis学习笔记] 二.Mybatis基本操作及相关标签介绍 一.Mybatis简介 二.简单的CRUD操作 1.构建SqlSessionFactory (1)编辑mybatis-config ...
最新文章
- Jenkins插件之VShpere Cloud
- Bing API 2的体验
- Installation error: INSTALL_FAILED_CANCELLED_BY_USER
- linux多开终端,如何使用Tmux终端多开工具
- 【Java1】jdk安装/idea安装,关键字/数据类型/标识符,运算符,/包/类,运算符,if/switch,for/while
- docker端口映射或启动容器时报错 driver failed programming external connectivity on endpoint
- NET问答: 如何给 ASP.NET Core 配置指定端口 ?
- 使用Kubeadm创建k8s集群之部署规划(三十一)
- 【AD】Altium designer画pcb时出现Unknown Pin 和Failed to add class
- 第2章[2.2] Ext JS多类型终端-电脑、移动端(手机、平板)
- 物联网火爆,开发者却遇到这个大难题!
- Python 彻底甩掉 Java,位居 48 种编程语言之首!
- @程序员,你会教自己的孩子学习编程吗?
- DELMIA软件物流仿真:使用输送带输送物料的仿真操作方法
- 简单实用的微信缓存框架mmkv
- 利用C语言读取WAV文件
- 计算机操作系统学习笔记+思维导图——西安电子科技大学(第四版)
- vs2010中文旗舰下载地址
- 辛普森悖论_辛普森悖论如何影响AB测试
- gtx1050ti和gtx1650哪个好
热门文章
- 《TensorFlow深度学习应用实践》学习笔记1
- 工作中要注意拍照录像,证明工作完成
- 把几个任务分配到几个设备上的代码
- mysql集群脑裂问题_redis集群怎么解决脑裂问题
- C# dataGridView控件 获取整行宽度 整列高度 设置某列宽度 设置某行高度
- python 宏定义_「Rust笔记」Rust之自定义宏写法
- java更新linux_linux下 更新 java版本
- python中object类的源码在哪里-[Python之路] object类中的特殊方法
- 串级pid算法c语言实现,【开源】分享一个经典的串级PID算法,附源代码
- 如何修复MySQL配置文件?