巴西网站后缀/吴江网站制作

巴西网站后缀,吴江网站制作,怎么给网站做后台,怎么用自己的电脑建设网站1. <if> 用于条件判断&#xff0c;当满足条件时执行对应的 SQL 片段。 示例: <select id"findUser" resultType"User">SELECT * FROM usersWHERE 11<if test"name ! null and name ! ">AND name #{name}</if><if…

1. <if>

用于条件判断,当满足条件时执行对应的 SQL 片段。

示例:

<select id="findUser" resultType="User">SELECT * FROM usersWHERE 1=1<if test="name != null and name != ''">AND name = #{name}</if><if test="age != null and age != ''">AND age = #{age}</if>
</select>

 上述示例中,如果name不为null,并且不为空时,则拼接条件name进行查询。即if条件判断为true时,才进行name拼接查询


2. <where>

自动处理 WHERE 子句中的逻辑,避免手动拼接 ANDOR 导致的 SQL 错误。

  • 如果 <where> 内部没有任何内容,则不会生成 WHERE
  • 自动移除第一个条件前多余的 AND 或 OR

示例:

<select id="findUser" resultType="User">SELECT * FROM users<where><if test="name != null and name != ''">AND name = #{name}</if><if test="age != null and age != ''">AND age = #{age}</if></where>
</select>

3. <set>

用于更新操作时动态生成 SET 子句,自动处理逗号分隔符。

  • 如果 <set> 内部没有任何内容,则不会生成 SET
  • 自动移除最后一个逗号。

示例:

<update id="updateUser">UPDATE users<set><if test="name != null and name != ''">AND name = #{name}</if><if test="age != null and age != ''">AND age = #{age}</if></set>WHERE id = #{id}
</update>

4. <choose>、<when>、<otherwise>

类似于 Java 中的 switchif-else 语句,用于多条件分支判断。

示例:

<select id="findUser" resultType="User">SELECT * FROM users<where><choose><when test="name != null and name != ''">name = #{name}</when><when test="email != null and email != ''">email = #{email}</when><otherwise>age > 0</otherwise></choose></where>
</select>

上述示例中:

如果name不为空,则根据name查询

如果name不为空且email不为空,则根据email查询

如果name和email都为空,则查询age大于0的 


5. <trim>

用于自定义动态 SQL 的前缀和后缀,可以灵活控制生成的 SQL。

  • prefix:在SQL前添加内容。
  • suffix:在生成 SQL语句后添加内容。
  • prefixOverrides:移除指定的前缀(如多余的 AND 或 OR)。
  • suffixOverrides:移除指定的后缀。

示例:

<select id="findUser" resultType="User">SELECT * FROM users<trim prefix="WHERE" prefixOverrides="AND |OR"><if test="name != null and name != ''">AND name = #{name}</if><if test="age != null and age != ''">AND age = #{age}</if></trim>
</select>

6. <foreach>

用于遍历集合,常用于 IN 查询或批量插入。

  • collection:指定要遍历的集合名称。
  • item:集合中的每个元素的别名。
  • open:遍历开始的字符。
  • close:遍历结束的字符。
  • separator:集合项之间的分隔符。

示例:

<select id="findUsersByIds" resultType="User">SELECT * FROM usersWHERE id IN<foreach collection="ids" item="id" open="(" separator="," close=")">#{id}</foreach>
</select>

批量插入示例:

<insert id="batchInsert">INSERT INTO users (name, age)VALUES<foreach collection="list" item="user" separator=",">(#{user.name}, #{user.age})</foreach>
</insert>

7. <bind>

用于在 SQL 中创建变量,通常结合其他标签使用,比如正则表达式匹配。

示例:

<select id="findUserByLike" resultType="User"><bind name="pattern" value="'%' + _parameter + '%'" />SELECT * FROM usersWHERE name LIKE #{pattern}
</select>

8. <sql> 和 <include>

用于定义可重用的 SQL 片段。

  • <sql>:定义 SQL 片段。
  • <include>:引用已定义的 SQL 片段。

示例:

<sql id="userColumns">id, name, age, email
</sql><select id="findUser" resultType="User">SELECT <include refid="userColumns" /> FROM usersWHERE id = #{id}
</select>

总结

标签功能描述
<if>条件判断
<where>自动生成 WHERE 子句
<set>自动生成 SET 子句
<choose>多条件分支判断
<trim>自定义前缀和后缀
<foreach>遍历集合,适用于 IN 查询或批量操作
<bind>创建变量
<sql>定义可重用的 SQL 片段
<include>引用已定义的 SQL 片段

通过这些标签,MyBatis 可以灵活地生成动态 SQL,满足复杂的业务需求。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/70612.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

500字理透react的hook闭包问题

在react中hook的闭包问题很容易在不经意间犯错&#xff0c;项目写大了之后更是难以找到到底是哪里出了问题。 为什么会出现闭包问题 出现闭包问题的原因就是函数中操作的变量不是最新的变量&#xff0c;什么意思呢&#xff0c;我们知道函数组件每次刷新都是重新运行一次函数&…

买股票的最佳时机 - 2

买卖股票的最佳时机 III 题目描述&#xff1a; 提示&#xff1a; 1 < prices.length < 1050 < prices[i] < 105 分析过程&#xff1a; 写动态规划&#xff0c;我们需要考虑一下问题&#xff1a; 定义状态状态转移方程初始条件 遍历顺序 4种状态&#xff1a; …

【HarmonyOS Next】地图使用详解(一)

背景 这系列文章主要讲解鸿蒙地图的使用&#xff0c;当前可以免费使用&#xff0c;并提供了丰富的SDK给开发者去自定义控件开发。目前可以实现个性化显示地图、位置搜索和路径规划等功能&#xff0c;轻松完成地图构建工作。需要注意的是&#xff0c;现在测试只能使用实体手机去…

计算机毕业设计SpringBoot+Vue.jst0甘肃非物质文化网站(源码+LW文档+PPT+讲解)

温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 作者简介&#xff1a;Java领…

第4章 4.1 Entity Framework Core概述

4.1.1 什么是ORM ORM (object tralstional mapping ,对象关系映射)中的“对象”指的就是C#中的对象&#xff0c;而“关系”是关系型数据库&#xff0c;“映射”指搭建数据库与C#对象之间的“桥梁”。 比如使用ORM &#xff0c;可以通过创建C#对象的方式把数据插入数据库而不需…

出行项目案例

spark和kafka主要通过Scala实现&#xff0c;Hadoop和HBase主要基于java实现。 通过该项目&#xff0c;主要达到以下目的&#xff1a; &#xff08;1&#xff09;通用的数据处理流程&#xff0c;入门大数据领域 &#xff08;2&#xff09;真实体验大数据开发工程师的工作 &a…

五、Three.js顶点UV坐标、纹理贴图

一部分来自1. 创建纹理贴图 | Three.js中文网 &#xff0c;一部分是自己的总结。 一、创建纹理贴图 注意&#xff1a;把一张图片贴在模型上就是纹理贴图 1、纹理加载器TextureLoader 注意&#xff1a;将图片加载到加载器中 通过纹理贴图加载器TextureLoader的load()方法加…

綫性與非綫性泛函分析與應用_1.例題(下)-半母本

第1章 實分析與函數論:快速回顧(下) 五、基數;有限集和無限集相關例題 例題1:集合基數的判斷 判斷集合和集合B=\{a,b,c,d,e\}的基數關係。 解析: 可以構造一個雙射,例如,,,,。 所以,兩個集合具有相同的基數。 例題2:可數集的證明 證明整數集是可數集。 解析: …

浅拷贝和深拷贝的区别?可以举例说明

在编程中&#xff0c;浅拷贝和深拷贝是用于复制对象的两种不同方式&#xff0c;它们的主要区别在于复制对象时对对象内部成员的处理方式。今天我们对此进行讨论。 目录 1 浅拷贝 2 深拷贝 1 浅拷贝 浅拷贝创建一个新对象&#xff0c;新对象的属性值会复制原始对象的属性值…

微信小程序实现拉卡拉支付

功能需求&#xff1a;拉卡拉支付&#xff08;通过跳转拉卡拉平台进行支付&#xff09;&#xff0c;他人支付&#xff08;通过链接进行平台跳转支付&#xff09; 1.支付操作 //支付 const onCanStartPay async (obj) > {uni.showLoading({mask: true})// 支付接口获取需要传…

使用ESP-IDF来驱动INMP441全向麦克风

之前的文章我们讲过了I2S。 I2S是什么通信协议&#xff1f;它如何传输音频数据&#xff1f;它和I2C是什么关系&#xff1f;_i2c接口和i2s-CSDN博客文章浏览阅读836次&#xff0c;点赞12次&#xff0c;收藏14次。这个可以参考ADC来理解&#xff0c;我们的ADC也是有左对齐和右对…

【带你 langchain 双排系列教程】6.LangChain多模态输入与自定义输出实战指南

一、为什么需要多模态交互&#xff1f; 在真实业务场景中&#xff0c;数据从来都不是单一形式的。想象一个智能客服系统需要同时分析用户的文字描述、上传的产品图片和语音留言&#xff0c;或者一个内容审核系统需要检查文本、图像和视频的组合内容。传统单一模态的处理方式已…

【Bluedroid】AVRCP 连接源码分析(三)

接着上一篇【Bluedroid】AVRCP 连接源码分析&#xff08;一&#xff09;-CSDN博客&#xff0c;继续AVRCP连接的源码分析。 AVRC_OpenBrowse /packages/modules/Bluetooth/system/stack/avrc/avrc_api.cc /*****************************************************************…

基于大语言模型的推荐系统(1)

推荐系统&#xff08;recommendation system&#xff09;非常重要。事实上&#xff0c;搜索引擎&#xff0c;电子商务&#xff0c;视频&#xff0c;音乐平台&#xff0c;社交网络等等&#xff0c;几乎所有互联网应用的核心就是向用户推荐内容&#xff0c;商品&#xff0c;电影&…

C语言基础要素:安装 Visual Studio 2022

安装 Visual Studio 2022 Visual Studio 是由微软开发的一款集成开发环境&#xff08;IDE&#xff09;&#xff0c;支持多种编程语言和开发平台。它提供了丰富的工具和功能&#xff0c;帮助开发者高效地编写、调试和部署应用程序。无论是桌面应用、Web 应用还是移动应用&#…

[通俗易懂C++]:指针和const

之前的文章有说过,使用指针我们可以改变指针指向的内容(通过给指针赋一个新的地址)或者改变被保存地址的值(通过给解引用指针赋一个新值): int main() {int x { 5 }; // 创建一个整数变量 x&#xff0c;初始值为 5int* ptr { &x }; // 创建一个指针 ptr&#xff0c;指向 …

华为昇腾服务器(固件版本查询、驱动版本查询、CANN版本查询)

文章目录 1. **查看固件和驱动版本**2. **查看CANN版本**3. **其他辅助方法**注意事项 在华为昇腾服务器上查看固件、驱动和CANN版本的常用方法如下&#xff1a; 1. 查看固件和驱动版本 通过命令行工具 npu-smi 执行以下命令查看当前设备的固件&#xff08;Firmware&#xff0…

Blaze RangePartitioning 算子Native实现全解析

引言&#xff1a;本文将全面且深入地解析Blaze RangePartitioning算子的Native实现过程。相较于原生Spark&#xff0c;RangePartitioning的Native实现在执行时间上达到了30%的显著下降&#xff0c;同时在资源开销方面节省了高达76%。这一改进大幅降低了运行成本&#xff0c;展现…

卷积与动态特征选择:重塑YOLOv8的多尺度目标检测能力

文章目录 1. YOLOv8的网络结构概述2. 添加注意力机制2.1 为什么添加注意力机制&#xff1f;2.2 如何将注意力机制集成到YOLOv8中&#xff1f;2.3 效果分析 3. C2f模块的集成3.1 C2f模块简介3.2 如何在YOLOv8中集成C2f模块&#xff1f;3.3 效果分析 4. 卷积操作的优化4.1 卷积操…

Web入侵实战分析-常见web攻击类应急处置实验2

场景说明 某天运维人员&#xff0c;发现运维的公司站点被黑页&#xff0c;首页标题被篡改&#xff0c;你获得的信息如下&#xff1a; 操作系统&#xff1a;windows server 2008 R2业务&#xff1a;公司官网网站架构&#xff1a;通过phpstudy运行apache mysqlphp开放端口&…