首页 > 其他分享 >Mybatis的Mapper映射文件中常用标签

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

时间:2024-10-14 19:59:55浏览次数:7  
标签:语句 Mapper 映射 标签 用于 SQL Mybatis id

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>:用于实现查询结果的缓存机制,提高应用性能。

标签:语句,Mapper,映射,标签,用于,SQL,Mybatis,id
From: https://www.cnblogs.com/loong3/p/18464879

相关文章

  • MyBatis-Plus 多表联查Mybatis-Plus Join
    com.github.yulichangMybatis-PlusJoin简介在MyBatis-Plus中,使用com.github.yulichang提供的扩展库(Mybatis-PlusJoin),可以非常方便地实现多表联表查询,而不需要手动编写复杂的SQL。这种扩展库简化了联表操作,提供了一种基于Lambda表达式的查询方式。MyBatis-Plus-......
  • mybatis分页查询,总数是对的,数据有重复
    mybatis分页查询,总数是对的,数据有重复在使用MyBatis查询数据时,ORDERBY子句的使用会直接影响到查询结果的顺序。虽然在某些情况下,数据库返回的记录顺序可能看起来是相同的,但实际上没有使用ORDERBY时,返回的顺序是不可预测的,这取决于数据库的内部实现和数据存储的方式。可......
  • mybatis入门案例-传参类型和方式
    mybatis传参类型和方式主要分享一下mybatis的mapper接口参数类型和传参方式,适用于初学者。直接上代码:pom.xml文件<?xmlversion="1.0"encoding="UTF-8"?><projectxmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-insta......
  • SpringBoot&Mybatis的苏果超市商品销售管理系统 毕业设计源码93704
                            摘 要在网络信息的时代,众多的软件被开发出来,给用户带来了很大的选择余地,而且人们越来越追求更个性的需求。在这种时代背景下,超市只能以用户为导向,按品种小批量组织生产,以产品的持续创新作为超市最......
  • Java面试题———MyBatis篇
    目录1、Mybatis中#{}和${}的区别2、当实体类中的属性名和表中的字段名不一样,怎么办3、MyBatis动态SQL了解吗4、ResultType和ResultMap有什么区别1、Mybatis中#{}和${}的区别在Mybatis中#{}和${}都可以用于在sql语句中拼接参数,但是在使用方面有很多的区别1、处理方式......
  • Springboot整合Mybatis
    1、创建springboot项目2、勾选mysql驱动和web驱动3、pom.xml导入相关依赖<!--MyBatisPlus启动器--><dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId>&l......
  • Mybatis基础操作
    完成员工信息的增删改查操作。准备--部门管理createtabledept(idintunsignedprimarykeyauto_incrementcomment'主键ID',namevarchar(10)notnulluniquecomment'部门名称',create_timedatetimenotnullcomment'创建时间',update_time......
  • Mybatis高级查询-一对多查询
    表介绍和表关系说明新建以下4张表tb_user:用户表tb_order:订单表tb_item:商品表tb_orderdetail:订单详情表【表关系】1.tb_user和tb_order表关系tb_user《==》tb_order:一对多,一个人可以下多个订单tb_order《==》tb_user:一对一,一个订单只能属于一个人......
  • 基于django+vue+Vue基于+Mybatis的医生在线诊所平台【开题报告+程序+论文】-计算机毕
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容研究背景随着互联网技术的飞速发展,医疗行业也迎来了数字化转型的浪潮。传统的就医模式面临着诸多挑战,如医疗资源分配不均、患者就医体验不佳、医生......
  • Mybatis-Flex的增、删、改、查以及swagger (knife4J)的使用
    现代Java开发中,Mybatis-Flex是一个功能强大的Java持久层框架,使数据库操作高效灵活,而Swagger(Knife4J)则改善了API文档化与测试体验,两者结合能提高效率、增强协作、保证代码质量。本文将详细描述Mybatis-Flex增、删、改、查操作及与Swagger(Knife4J)协同使用,以下均已C......