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

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

时间:2024-10-14 20:00:40浏览次数:7  
标签:语句 Mapper 映射 标签 用于 SQL Mybatis WHERE

Mapper映射文件常用标签

1、select - 用于映射 SELECT 语句。此标签用于从数据库中查询数据,并且可以选择返回不同的结果类型。通常需要结合 resultType 或 resultMap 属性来指定结果应该映射到哪种 Java 类型或自定义的结果映射规则。

<select id="selectUsers" resultType="map"> SELECT * FROM users </select>

2、insert - 用于映射 INSERT 语句。此标签允许向数据库表中插入新的记录。可以使用 标签来处理自增主键的情况。

<insert id="insertUser" parameterType="com.example.User"> INSERT INTO users(name, email) VALUES (#{name}, #{email}) </insert>

3、update - 用于映射 UPDATE 语句。此标签允许更新已存在的记录。通常与 标签配合使用来智能地忽略 null 值。

<update id="updateUser" parameterType="com.example.User"> UPDATE users SET name = #{name}, email = #{email} WHERE id = #{id} </update>

4、delete - 用于映射 DELETE 语句。此标签允许从数据库中删除记录。

<delete id="deleteUser" parameterType="int"> DELETE FROM users WHERE id = #{id} </delete>

5、where - 该标签用于处理 SQL 语句中的 WHERE 子句。它能够智能地添加 WHERE 关键字并且自动移除第一个条件前面的逗号。例如,如果动态生成的 SQL 有多个条件,则第一个条件前不会出现不必要的逗号。

6、selectKey - 用于执行一个 SQL 语句来获取数据库自动生成的主键值(如 MySQL 的 AUTO_INCREMENT)。此标签通常与插入语句一起使用,以便在插入新记录后立即获取生成的主键。

7、set - 此标签用于构建 UPDATE 语句中的 SET 子句。它可以智能地忽略值为 null 的属性,从而避免在 UPDATE 语句中设置 null 值。

8、 if - 动态 SQL 标签之一,用于基于表达式的条件来决定是否包含某个子句。只有当测试条件为 true 时,if 标签内部的 SQL 才会被包含在最终的 SQL 语句中。

9、 forEach - 用于迭代集合对象(如 List 或 Map),通常用于构建 IN 条件或者批量更新/插入。它可以遍历集合中的每一个元素来构建最终的 SQL 语句。

10、trim - 用于动态修剪 SQL 语句的前缀或后缀,比如去除多余的空格、括号、逗号等。它包含几个有用的属性,如 prefix, suffix, prefixOverrides, 和 suffixOverrides。

11、choose when otherwise - 这组标签相当于 Java 中的 switch-case 结构。choose 开始一组选择,when 标签指定条件,如果所有 when 条件都不满足,则执行 otherwise 中的 SQL。

12、ResultMap - 用于定义复杂的结果映射规则,包括一对一和一对多的关系映射。通过 resultMap,你可以指定如何将数据库查询结果映射到 Java 对象上。

13、Assocation - 用于处理一对一的关系映射。它通常作为 resultMap 的一部分来使用。

14、Collection - 用于处理一对多的关系映射,同样也是 resultMap 的一部分。它可以处理列表、数组等集合类型的映射。

15、sql - 用于定义可重用的 SQL 代码片段。定义在 sql 标签中的 SQL 代码可以被 include 标签引用。

16、include - 用于引用由 sql 标签定义的 SQL 代码片段,这样可以避免 SQL 代码的重复编写,提高代码的复用性。

17、cache - 用于配置映射器级别的缓存。可以通过 cache 标签来启用或禁用缓存,也可以设置缓存的过期时间等属性。

标签:语句,Mapper,映射,标签,用于,SQL,Mybatis,WHERE
From: https://www.cnblogs.com/chengzhenghai/p/18464903

相关文章

  • Mybatis的Mapper映射文件中常用标签
    MyBatis是一个Java语言的持久层框架,它支持自定义SQL查询、存储过程以及高级映射。MyBatis简化了JDBC的繁琐操作,如手动设置参数或者获取结果集。MyBatis可以使用XML或注解来配置和映射原生信息,将接口和Java的POJOs(PlainOldJavaObjects,普通的Java对象)映射成数据......
  • 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万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容研究背景随着互联网技术的飞速发展,医疗行业也迎来了数字化转型的浪潮。传统的就医模式面临着诸多挑战,如医疗资源分配不均、患者就医体验不佳、医生......