Mybatis的Mapper映射文件中常用标签

news/2024/10/14 20:13:07

MyBatis 是一个 Java 语言的持久层框架,它支持自定义 SQL 查询、存储过程以及高级映射。MyBatis 简化了 JDBC 的繁琐操作,如手动设置参数或者获取结果集。MyBatis 可以使用 XML 或注解来配置和映射原生信息,将接口和 Java 的 POJOs(Plain Old Java Objects,普通的 Java 对象)映射成数据库中的记录。

MyBatis 支持多种 SQL 标签,以下是一些主要的 SQL 标签:
1.<select>:用于执行查询语句,获取数据。例如:
<select id="selectUserById" parameterType="int" resultType="com.example.User"> SELECT * FROM user WHERE id = #{id} </select>

2.<insert>:用于执行插入语句。
<insert id="insertUser" parameterType="com.example.User"> INSERT INTO user(name, age) VALUES(#{name}, #{age}) </insert>

3.<update>:用于执行更新语句。
<update id="updateUser" parameterType="com.example.User"> UPDATE user SET name = #{name}, age = #{age} WHERE id = #{id} </update>

4.<delete>:用于执行删除语句。
<delete id="deleteUser" parameterType="int"> DELETE FROM user WHERE id = #{id} </delete>

5.<resultMap>:用于定义复杂的结果集映射,可以映射到自定义的 Java 类型。
<resultMap id="UserResultMap" type="com.example.User"> <id property="id" column="id"/> <result property="name" column="name"/> <result property="age" column="age"/> </resultMap>

6.<parameterMap>:用于定义参数映射,可以映射到自定义的 Java 类型。
<parameterMap type="com.example.User"> <parameter name="id" property="id"/> <parameter name="name" property="name"/> <parameter name="age" property="age"/> </parameterMap>

7.<sql>:用于定义可重用的 SQL 代码片段,可以被多个 标签引用。
<sql id="userColumns"> id, name, age </sql>

8.<foreach>标签:该标签的作用是遍历集合类型的条件
foreach元素的属性主要有 item,index,collection,open,separator,close。
item表示集合中每一个元素进行迭代时的别名.
index指 定一个名字,用于表示在迭代过程中,每次迭代到的位置.
open表示该语句以什么开始,separator表示在每次进行迭代之间以什么符号作为分隔 符.
close表示以什么结束
<delete id="deleteByPriKeys" parameterType="java.lang.String"> delete from product where product_Id in <foreach collection="list" item="productId" open="(" separator="," close=")"> #{productId,jdbcType = VARCHAR} </foreach> </delete>

9.<if>:条件判断标签,根据表达式的结果执行不同的 SQL 逻辑。
<if test="condition != null"> AND condition = #{condition} </if>

10.<choose><when><otherwise>:用于实现多条件分支逻辑。
<choose> <when test="type == 'A'"> SELECT * FROM A </when> <when test="type == 'B'"> SELECT * FROM B </when> <otherwise> SELECT * FROM C </otherwise> </choose>

11.<bind>:用于将变量绑定到SQL语句中,提高SQL语句的安全性。
12.<trim>:用于动态地生成SQL前缀和后缀,支持添加或去除前缀/后缀字符串。
13.<include>:用于包含其他SQL片段或配置,支持嵌套使用。
14.<dynamic>:用于动态生成SQL语句,根据条件自动添加或删除部分语句。
15.<selectKey>:用于执行特定的插入或更新操作后执行的SQL语句,通常用于获取自增ID。
16.<cache>:用于实现查询结果的缓存机制,提高应用性能。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

相关文章

程序员必看!从菜鸟到专家你要这么做,8年互联网老兵爆肝总结

“互联网行业工作8年多,在国内Top互联网大厂B(ytedance)AT中的两家待过。喜欢研究计算机基础原理,有移动端全栈(包括Android & iOS & 鸿蒙等)开发经验,对逆向和网络安全有一定经验。” 不管是在校大学生,还是初入职场的菜鸟,抑或是在互联网行业打拼多年的老码农…

CTF 的基础知识 题型 Trick总结

idk.references: 1 2 web php 语法基础 references: 1 php 脚本的基本格式: <?php //coding here ?>php 代码同样以 ; 结尾。 php 文件的后缀名大多是 php ,也有诸如 php5 php4 phps 之类,如果普通的后缀名被拦截不妨试试其他的。 php 变量用 $ 来定义,大小写敏感…

微服务03 微服务sentinel, springcloudgateway

6 Sentinel 6.1 Sentinel 介绍和工作机制 6.1.1 微服务流量治理组件介绍 随着微服务的流行,服务和服务之间的调用导致服务的稳定性问题变得越来越重要。 雪崩问题: 微服务调用链路中的某个服务故障,引起整个链路中的所有微服务都不可用,即雪崩。 解决雪崩问题的常见方式有…

Web刷题之polarctf靶场(3)

1. 干正则 打开靶场发现是简单的php代码审计, 先构造id=a[0]=www.polarctf.com, 由于要ping两次, 所以先构造cmd=|ls <?php error_reporting(0); if (empty($_GET[id])) {show_source(__FILE__);die(); } else {include flag.php;$a = "www.baidu.com";$result =…

题解:P2315 [HNOI2005] 数三角形

Problem Link [HNOI2005] 数三角形 题意 输入一个大三角形的各个边存在情况,输出里面有多少个正三角形。 Solution 简单暴力即可,用 \(4\) 个数组维护每条边能延伸的最大长度,然后逐个判断三角形是否可行即可。如图,l_upper 维护左端点向上(即 $\ell_{BA} $),l_lower 维…

梳理好本职工作之项目管理

项目整个里程碑,每个阶段应该输出什么

微服务01 ZooKeeper, Kafka

1.4 微服务 1.4.6 Spring Cloud JAVA 微服务技术 Dubbo是2014年之前阿里退出的分布式系统的技术(不属于微服务)。现在主流是 Spring Cloud Spring Cloud官网地址: https://spring.io/projects/spring-cloud 官网上实现方法有很多种,目前主流是阿里巴巴实现的方法Spring Boot…

Swarm 框架登场:OpenAI 第 3 阶段「敲门砖」;马斯克的 Teslabot 实际有人远程操控丨 RTE 开发者日报

开发者朋友们大家好:这里是 「RTE 开发者日报」 ,每天和大家一起看新闻、聊八卦。我们的社区编辑团队会整理分享 RTE(Real-Time Engagement) 领域内「有话题的 新闻 」、「有态度的 观点 」、「有意思的 数据 」、「有思考的 文章 」、「有看点的 会议 」,但内容仅代表编辑…