MyBatis学习07--动态sql语句if、where、foreach
2021/8/9 2:05:52
本文主要是介绍MyBatis学习07--动态sql语句if、where、foreach,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
1. sql标签
使用sql标签将重复的sql语句部分封装起来
在需要使用这个sql片段的地方,就用include标签引入就行了
<sql id="select_all"> select * from t_user </sql>
2. if标签
<select id="findUserListByAddress" parameterType="string" resultType="User"> <include refid="select_all"/> <!-- 加入一个判断,判断传入的address是否为空,使用if标签进行判断,该标签中的test属性就编写判断条件 --> <if test="address != null"> where address=#{address} </if> </select>
3. where标签
<select id="findUserListByAddressAndSex" parameterType="User" resultType="User"> <!-- include标签引入sql标签中的sql语句 refid填写的是sql标签的id --> <include refid="select_all"/> <!-- where标签的作用: 1. 可以在条件之前添加where关键字 2. 可以去掉第一个条件前的and --> <where> <if test="address != null"> and address=#{address} </if> <if test="sex != null"> and sex=#{sex} </if> </where> </select>
4. foreach标签
<delete id="deleteByIds" parameterType="int" > delete from t_user <!-- 将传入的集合中的数据遍历出来,放到()里面 使用foreach标签遍历 collection属性:要遍历的集合,如果要遍历的是一个List则写成list item属性: 遍历出来的每一个元素 separator属性: 遍历出来的每一个元素之间的分隔符 index属性: 遍历出来的每一个元素的索引 open属性: 在遍历出来的第一个元素之前拼接字符串 close属性: 在遍历出来的最后一个元素之后拼接字符串 --> <foreach collection="list" item="id" separator="," open="where uid in(" close=")"> #{id} </foreach> </delete>
总结:全部代码
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <!-- 根标签mapper,一个映射配置文件,就对应一个dao接口 根标签的namespace属性的值就对应dao接口的全限定名 --> <mapper namespace="com.itheima.dao.UserDao"> <!-- 使用sql标签将重复的sql语句部分封装起来 在需要使用这个sql片段的地方,就用include标签引入就行了 --> <sql id="select_all"> select * from t_user </sql> <select id="findUserListByAddress" parameterType="string" resultType="User"> <include refid="select_all"/> <!-- 加入一个判断,判断传入的address是否为空,使用if标签进行判断,该标签中的test属性就编写判断条件 --> <if test="address != null"> where address=#{address} </if> </select> <select id="findUserListByAddressAndSex" parameterType="User" resultType="User"> <!-- include标签引入sql标签中的sql语句 refid填写的是sql标签的id --> <include refid="select_all"/> <!-- where标签的作用: 1. 可以在条件之前添加where关键字 2. 可以去掉第一个条件前的and --> <where> <if test="address != null"> and address=#{address} </if> <if test="sex != null"> and sex=#{sex} </if> </where> </select> <delete id="deleteByIds" parameterType="int" > delete from t_user <!-- 将传入的集合中的数据遍历出来,放到()里面 使用foreach标签遍历 collection属性:要遍历的集合,如果要遍历的是一个List则写成list item属性: 遍历出来的每一个元素 separator属性: 遍历出来的每一个元素之间的分隔符 index属性: 遍历出来的每一个元素的索引 open属性: 在遍历出来的第一个元素之前拼接字符串 close属性: 在遍历出来的最后一个元素之后拼接字符串 --> <foreach collection="list" item="id" separator="," open="where uid in(" close=")"> #{id} </foreach> </delete> </mapper>
这篇关于MyBatis学习07--动态sql语句if、where、foreach的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-12-27Nacos多环境配置学习入门
- 2024-12-27Nacos快速入门学习入门
- 2024-12-27Nacos快速入门学习入门
- 2024-12-27Nacos配置中心学习入门指南
- 2024-12-27Nacos配置中心学习入门
- 2024-12-27Nacos做项目隔离学习入门
- 2024-12-27Nacos做项目隔离学习入门
- 2024-12-27Nacos初识学习入门:轻松掌握服务发现与配置管理
- 2024-12-27Nacos初识学习入门:轻松掌握Nacos基础操作
- 2024-12-27Nacos多环境配置学习入门