MyBatis SQL 映射文件的作用和结构

结构化查询语言SQL,一篇学透 结构话查询语言一篇学透 阅读详情

MyBatis SQL 映射文件定义了 SQL 语句以及如何将 SQL 语句的参数和结果映射到 Java 对象。
一、 作用 (Purpose)

MyBatis SQL 映射文件(通常命名为 XXXMapper.xml)的主要作用是:

  1. 定义 SQL 语句: 在 XML 映射文件中编写 SQL 语句,包括 SELECT, INSERT, UPDATE, DELETE 等各种类型的 SQL 语句。
  2. 参数映射 (Parameter Mapping): 定义如何将 Java 方法的参数映射到 SQL 语句中的参数。 可以使用 # 和 $ 占位符,并指定参数类型、jdbcType 等信息。
  3. 结果映射 (Result Mapping): 定义如何将 SQL 语句的查询结果映射到 Java 对象。 可以使用 resultType 或 resultMap,并定义一对一、一对多等关系映射。
  4. 动态 SQL (Dynamic SQL): 使用 MyBatis 提供的动态 SQL 元素 (例如 <if>, <choose>, <when>, <otherwise>, <where>, <set>, <foreach>),根据不同的条件动态生成 SQL 语句。
  5. 缓存配置 (Cache Configuration): 配置 SQL 语句的缓存行为,提高查询性能。
  6. 与 Mapper 接口关联: 将 SQL 映射文件与 Java Mapper 接口关联起来,使得可以通过调用 Mapper 接口的方法来执行 SQL 语句。

总而言之,SQL 映射文件是 MyBatis 将 SQL 语句与 Java 代码解耦的关键,它允许开发者专注于 SQL 语句的编写和优化,而无需关心 JDBC 的细节。

二、 结构 (Structure)

MyBatis SQL 映射文件的根元素是 <mapper>,它包含多个子元素,用于定义 SQL 语句、参数映射、结果映射等信息。 以下是一个典型的 SQL 映射文件结构:

<?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 namespace="com.example.mapper.UserMapper">

    <!-- 1. cache (缓存) -->
    <cache
            eviction="LRU"
            flushInterval="60000"
            readOnly="true"
            size="512"/>

    <!-- 2. resultMap (结果映射) -->
    <resultMap id="UserResultMap" type="com.example.model.User">
        <id property="id" column="id"/>
        <result property="username" column="username"/>
        <result property="email" column="email"/>
        <!-- association (一对一) -->
        <association property="address" column="address_id" javaType="com.example.model.Address"
                     select="com.example.mapper.AddressMapper.selectAddressById"/>
        <!-- collection (一对多) -->
        <collection property="orders" column="id" ofType="com.example.model.Order"
                    select="com.example.mapper.OrderMapper.selectOrdersByUserId"/>
    </resultMap>

    <!-- 3. select (查询) -->
    <select id="selectUserById" parameterType="int" resultMap="UserResultMap" useCache="true">
        SELECT * FROM user WHERE id = #{id}
    </select>

    <!-- 4. insert (插入) -->
    <insert id="insertUser" parameterType="com.example.model.User" useGeneratedKeys="true" keyProperty="id">
        INSERT INTO user (username, email) VALUES (#{username}, #{email})
    </insert>

    <!-- 5. update (更新) -->
    <update id="updateUser" parameterType="com.example.model.User">
        UPDATE user SET username = #{username}, email = #{email} WHERE id = #{id}
    </update>

    <!-- 6. delete (删除) -->
    <delete id="deleteUserById" parameterType="int">
        DELETE FROM user WHERE id = #{id}
    </delete>

    <!-- 7. sql (SQL 片段) -->
    <sql id="userColumns">
        id, username, email
    </sql>

</mapper>

三、各个元素详解

  1. <mapper> (根元素):

    • namespace 属性:指定 Mapper 接口的完全限定名。 MyBatis 会根据这个命名空间来查找 SQL 映射文件,并将 SQL 语句与 Mapper 接口的方法关联起来。 这是将 SQL 映射文件与 Java 代码关联的关键。
      例如:<mapper namespace="com.example.mapper.UserMapper"> 对应着 UserMapper.java 接口文件
  2. <cache> (缓存):

    • 配置该 Mapper 对应的二级缓存。
    • eviction 属性:指定缓存的淘汰策略 (LRU, FIFO, SOFT, WEAK)。
    • flushInterval 属性:指定缓存的刷新间隔 (毫秒)。
    • size 属性:指定缓存的最大容量。
    • readOnly 属性:指定缓存是否只读 (true 或 false)。
    • <cache type="org.mybatis.cache.impl.PerpetualCache"/> 使用自定义缓存
  3. <cache-ref> (缓存引用):

    • 引用其他 Mapper 的缓存配置。
    • namespace 属性:指定要引用的 Mapper 的命名空间。
  4. <resultMap> (结果映射):

    • 作用: 定义如何将 SQL 语句的查询结果映射到 Java 对象。

    • id 属性:指定 resultMap 的唯一标识。

    • type 属性:指定要映射的 Java 类型。

    • 子元素:

      • <id>:定义主键映射。
        • property 属性:指定 Java 对象的属性名。
        • column 属性:指定数据库表中的列名。
      • <result>:定义普通属性映射。
        • property 属性:指定 Java 对象的属性名。
        • column 属性:指定数据库表中的列名。
      • <association>:定义一对一关系映射。
        • property 属性:指定 Java 对象的属性名。
        • column 属性:指定数据库表中的列名。
        • javaType 属性:指定关联对象的 Java 类型。
        • select 属性:指定用于查询关联对象的 SQL 语句的 ID。
      • <collection>:定义一对多关系映射。
        • property 属性:指定 Java 对象的属性名。
        • column 属性:指定数据库表中的列名。
        • ofType 属性:指定集合中元素的 Java 类型。
        • select 属性:指定用于查询集合元素的 SQL 语句的 ID。
      • <discriminator>:定义鉴别器,根据不同的条件选择不同的映射规则。
        • column 属性:指定用于鉴别的列名。
        • <case> 元素:定义不同的映射规则。
          • value 属性:指定鉴别值。
          • resultMap 属性:指定要使用的 resultMap。
    • 示例:

      <resultMap id="UserResultMap" type="com.example.model.User">
          <id property="id" column="id"/>
          <result property="username" column="username"/>
          <result property="email" column="email"/>
          <association property="address" column="address_id" javaType="com.example.model.Address"
                       select="com.example.mapper.AddressMapper.selectAddressById"/>
          <collection property="orders" column="id" ofType="com.example.model.Order"
                      select="com.example.mapper.OrderMapper.selectOrdersByUserId"/>
      </resultMap>
      
  5. <select> (查询):

    • 作用: 定义 SELECT 语句,用于查询数据。

    • id 属性:指定 SQL 语句的唯一标识。 与 Mapper 接口中的方法名对应。

    • parameterType 属性:指定参数类型。

    • resultType 属性:指定结果类型(如果使用简单类型映射)。

    • resultMap 属性:指定结果映射 (如果使用 <resultMap> 元素)。

    • parameterMap 属性: (已经过时, 不建议使用)

    • flushCache 属性: 如果设置为 true,则每次执行该语句都会刷新缓存。

    • useCache 属性:如果设置为 true,则该语句的结果会被缓存。

    • timeout 属性:设置超时时间(秒)。

    • fetchSize 属性:设置每次从数据库获取的记录数量。

    • statementType 属性: 指Statement类型, 可选值为 STATEMENT、PREPARED 和 CALLABLE。

      • STATEMENT, 默认值, 使用Statement
      • PREPARED, 使用PreparedStatement, 可以防止SQL注入, 性能更好。
      • CALLABLE, 主要用于执行存储过程
    • 示例:

      <select id="selectUserById" parameterType="int" resultMap="UserResultMap" useCache="true">
          SELECT * FROM user WHERE id = #{id}
      </select>
      
  6. <insert> (插入):

    • 作用: 定义 INSERT 语句,用于插入数据。

    • id 属性:指定 SQL 语句的唯一标识。

    • parameterType 属性:指定参数类型。

    • useGeneratedKeys 属性:是否允许 MyBatis 使用 JDBC 的 getGeneratedKeys 方法获取自增主键值。

    • keyProperty 属性:指定 Java 对象的哪个属性用于接收自增主键值。

    • keyColumn属性:指定数据库表的主键列名.

    • 示例:

      <insert id="insertUser" parameterType="com.example.model.User" useGeneratedKeys="true" keyProperty="id" keyColumn="id">
          INSERT INTO user (username, email) VALUES (#{username}, #{email})
      </insert>
      
  7. <update> (更新):

    • 作用: 定义 UPDATE 语句,用于更新数据。

    • id 属性:指定 SQL 语句的唯一标识。

    • parameterType 属性:指定参数类型。

    • 示例:

      <update id="updateUser" parameterType="com.example.model.User">
          UPDATE user SET username = #{username}, email = #{email} WHERE id = #{id}
      </update>
      
  8. <delete> (删除):

    • 作用: 定义 DELETE 语句,用于删除数据。

    • id 属性:指定 SQL 语句的唯一标识。

    • parameterType 属性:指定参数类型。

    • 示例:

      <delete id="deleteUserById" parameterType="int">
          DELETE FROM user WHERE id = #{id}
      </delete>
      
  9. <sql> (SQL 片段):

    • 作用: 定义可以重复使用的 SQL 代码片段。

    • id 属性:指定 SQL 片段的唯一标识。

    • 示例:

      <sql id="userColumns">
          id, username, email
      </sql>
      

四、 动态 SQL 元素 (Dynamic SQL Elements)

MyBatis 提供了以下动态 SQL 元素,可以根据不同的条件动态生成 SQL 语句:

  1. <if>:

    • 作用: 根据条件判断是否包含某段 SQL 代码。

    • test 属性:指定判断条件,使用 OGNL 表达式。

    • 示例:

      <select id="selectUserByCondition" parameterType="com.example.model.User" resultMap="UserResultMap">
          SELECT * FROM user
          <where>
              <if test="username != null and username != ''">
                  AND username = #{username}
              </if>
              <if test="email != null and email != ''">
                  AND email = #{email}
              </if>
          </where>
      </select>
      
  2. <choose>, <when>, <otherwise>:

    • 作用: 类似于 Java 中的 switch-case 语句,用于选择其中一个条件分支。

    • <choose> 元素:包含多个 <when> 元素和一个 <otherwise> 元素。

    • <when> 元素:指定条件和对应的 SQL 代码。

    • <otherwise> 元素:指定默认的 SQL 代码(当所有 <when> 条件都不满足时执行)。

    • test 属性:指定 <when> 元素的判断条件,使用 OGNL 表达式。

    • 示例:

      <select id="selectUserByCondition" parameterType="com.example.model.User" resultMap="UserResultMap">
          SELECT * FROM user
          <where>
              <choose>
                  <when test="username != null and username != ''">
                      AND username = #{username}
                  </when>
                  <when test="email != null and email != ''">
                      AND email = #{email}
                  </when>
                  <otherwise>
                      AND 1 = 1
                  </otherwise>
              </choose>
          </where>
      </select>
      
  3. <where>:

    • 作用: 动态生成 WHERE 子句,并自动处理 AND 或 OR 关键字。

    • 如果 <where> 元素内部有任何内容,它会自动添加 WHERE 关键字。

    • 如果 <where> 元素内部的内容以 AND 或 OR 开头,它会自动移除这些关键字。

    • 示例:

      <select id="selectUserByCondition" parameterType="com.example.model.User" resultMap="UserResultMap">
          SELECT * FROM user
          <where>
              <if test="username != null and username != ''">
                  AND username = #{username}
              </if>
              <if test="email != null and email != ''">
                  AND email = #{email}
              </if>
          </where>
      </select>
      
  4. <set>:

    • 作用: 动态生成 SET 子句,用于 UPDATE 语句,并自动处理逗号 ,。

    • 如果 <set> 元素内部有任何内容,它会自动添加 SET 关键字。

    • 如果 <set> 元素内部的内容以逗号 , 开头,它会自动移除这个逗号。

    • 示例:

      <update id="updateUserSelective" parameterType="com.example.model.User">
          UPDATE user
          <set>
              <if test="username != null">
                  username = #{username},
              </if>
              <if test="email != null">
                  email = #{email},
              </if>
          </set>
          WHERE id = #{id}
      </update>
      
  5. <trim>:

    • 作用: 更通用的动态 SQL 元素,可以自定义前缀、后缀、以及前缀和后缀要移除的内容。

    • prefix 属性:指定前缀。

    • suffix 属性:指定后缀。

    • prefixOverrides 属性:指定要移除的前缀。

    • suffixOverrides 属性:指定要移除的后缀。

    • 示例:

      <select id="selectUserByCondition" parameterType="com.example.model.User" resultMap="UserResultMap">
          SELECT * FROM user
          <trim prefix="WHERE" prefixOverrides="AND |OR">
              <if test="username != null and username != ''">
                  AND username = #{username}
              </if>
              <if test="email != null and email != ''">
                  AND email = #{email}
              </if>
          </trim>
      </select>
      
      <update id="updateUserSelective" parameterType="com.example.model.User">
          UPDATE user
          <trim prefix="SET" suffixOverrides=",">
              <if test="username != null">
                  username = #{username},
              </if>
              <if test="email != null">
                  email = #{email},
              </if>
          </trim>
          WHERE id = #{id}
      </update>
      
  6. <foreach>:

    • 作用: 用于遍历集合,生成重复的 SQL 代码。

    • collection 属性:指定要遍历的集合。

    • item 属性:指定集合中元素的别名。

    • index 属性:指定当前元素的索引的别名。

    • open 属性:指定循环开始时的字符串。

    • close 属性:指定循环结束时的字符串。

    • separator 属性:指定元素之间的分隔符。

    • 示例:

      <select id="selectUsersByIds" parameterType="list" resultMap="UserResultMap">
          SELECT * FROM user
          WHERE id IN
          <foreach item="id" collection="list" open="(" separator="," close=")">
              #{id}
          </foreach>
      </select>
      
      <insert id="insertUsers" parameterType="list">
          INSERT INTO user (username, email) VALUES
          <foreach item="user" collection="list" separator="," >
              (#{user.username}, #{user.email})
          </foreach>
      </insert>
      
  7. <bind>:

    • 作用: 创建一个变量,并将其绑定到 OGNL 表达式的结果。
    • name 属性: 指定变量名
    • value 属性: 指定 OGNL 表达式
    • 示例:
      <select id="selectUsersBySearchTerm" parameterType="string" resultMap="UserResultMap">
          <bind name="pattern" value="'%' + searchTerm + '%'" />
          SELECT * FROM user
          WHERE username LIKE #{pattern} OR email LIKE #{pattern}
      </select>
      

五、 DOCTYPE (Document Type Definition)

MyBatis SQL 映射文件需要遵循特定的 DTD 约束.

  • DTD 声明:

    <!DOCTYPE mapper
            PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
            "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
    
  • DTD 文件:

    • mybatis-3-mapper.dtd 文件定义了 MyBatis SQL 映射文件的结构。可以在 MyBatis 的官方网站上找到该文件。
    • 开发中通常不需要我们手动修改 DTD 文件,只需要在 XML 配置文件中声明 DTD 即可。

六、总结

MyBatis SQL 映射文件是 MyBatis 框架的核心,它定义了 SQL 语句以及如何将 SQL 语句的参数和结果映射到 Java 对象。

MyBatis SQL映射文件实现写法 select>MyBatis映射文件是MyBatis框架的核心组件,通过它我们可以灵活地定义SQL语句和结果映射。掌握映射文件的编写方法,可以让我们更高效地进行数据库操作,提高开发效率。希望本文的示例和讲解对您有所帮助,如果您在使用MyBatis时有任何疑问,欢迎随时交流探讨! 阅读详情

相关推荐

微信小程序转化数据API自归因实战:PHP实现与2025升级要点解析

本文详细解析了2025年微信小程序转化数据API自归因的升级要点与PHP实战实现。核心变化包括接口地址更新、固定access_token的获取方式,以及新增timestamp与nonce等安全参数。文章提供了完整的PHP代码示例,帮助开发者高效完成数据上报,优化腾讯广告投放效果。

git9versioner的博客 989

SQL语句总结:SQL(Structured Query Language)是结构化查询语言的缩写,是一种用于管理和操作关系型数据库的标准化语言。下面我们来总结SQL语句的使用规范、应用场景、注意

MySQL文档:MySQL是一种常用的开源关系型数据库管理系统,其官方网站提供了MySQL的语法参考、函数文档、性能优化等方面的详细资料。W3School SQL教程:W3School提供了详细的SQL教程,包含了SQL语句的基本语法、函数、操作符等内容。数据定义:使用CREATE、ALTER和DROP语句创建、修改和删除数据库、表和列。数据控制:使用GRANT和REVOKE语句控制用户对数据库和表的访问权限。数据库管理:使用达梦数据库管理工具对数据库进行配置、备份和恢复等操作。

2301_79028780的博客 842

5分钟搞定:用Pyannote和Whisper实现带说话人分离的语音转文字(附完整代码)

本文详细介绍了如何快速构建一个集成了说话人分离功能的语音转文字系统。通过结合OpenAI的Whisper模型进行高精度语音识别和Pyannote模型实现说话人分离,并提供了完整的代码实现、环境搭建指南以及核心的对齐与合并逻辑,帮助开发者高效处理会议录音、访谈等多说话人音频,实现自动化转录。

threejs5artist的博客 635

SQL(structure query language 结构化查询语言)概念-基本语言

通配符:%(表示可以代替任意字符)的LIKE运算符---;order by:使得查询结果按某一字段(属性)排序 asc升序(缺省值=默认值) desc降序。selcet 中的*:表明选择表中的所有字段(属性):select * from table;use database:打开一个数据库(数据库其他操作的前提)describe table: (显示指定表的结构(及字段信息)limit-----限制 limit 3'返回记录的最大数目3。show tables:(显示当前打开数据库的所有数据表)......

weixin_47295886的博客 483

4万字一文带你看懂车载摄像头技术、市场、发展前景

1、小孔成像 在战国初期,我国学者墨子(公元前468年-公元前376年)和弟子们完成了世界上第一个小孔成像的实验,并记录在《墨经》中:“景到,在午有端,与景长。说在端。”“景。光之人,煦若射,下者之人也高;高者之人也下。足蔽下光,故成景于上;首蔽上光,故成景于下。在远近有端,与于光,故景库内也。” 此文解释了小孔成倒像的原因,指出了光沿直线传播的性质。这是对光直线传播的第一次科学解释。 而西方世界直到公元前350年,古希腊学者亚里士多德提出光学法则,西方人从此了解小孔成像的光学原理。

m0_58838529的博客 1495

1000Base-T1协议解读(基于802.3bq-2016 和Test Suite)

1000Base-T1是由一对双绞线实现全双工传输的以太网标准,采用PAM3编码方式(-1,0,1),编码后的实际传输符号速率为750Mbps。该标准的车载最大传输距离可达15米,主要应用于汽车产品开发过程。测试过程示波器要求带宽≥2G,采样率≥7.5Gbps,网分带宽≥1G。

qflook的博客 5334

SQL(Structure Query Language)结构化查询语言详解

SQL(Structure Query Language)结构化查询语言是数据库的核心语言。 SQL语言共分为4大类: DQL(Data Query Language)数据查询语言 关键字:SELECT … FROM … WHERE DML(Data Manipulation Language)数据操作语言 关键字:CREATE,DROP,ALTER。 DDL (Data Definition Language)数据库模式定义语言 关键字:INSERT、UPDATE、DELETE。 DCL(Data C

才子佳人的博客 3793

人工智能技术基础系列之:迁移学习

作者:禅与计算机程序设计艺术 1.背景介绍 随着深度学习和神经网络的快速发展,越来越多的应用场景需要处理大量的数据和复杂的任务。然而,由于计算资源、存储空间等条件的限制,传统的人工智能方法往往不能满足实际需求。因此,为了提高效率和降低成本,研究人员提出了迁移学习的概念。本篇文章将详细介绍迁移学习的基

AI天才研究院 699

SQL(Structured Query Language)语句分类

数据定义语言用于定义或修改数据库结构,如创建、修改或删除表和索引。CREATE语句用于创建新的数据库、表、索引或其他对象。ALTER语句用于修改现有数据库对象的结构。DROP语句用于删除数据库中的表或其他对象。age INT这个语句将创建一个名为students的表,包含idname和age列。SQL语句的分类有助于更好地理解和组织数据库操作。通过掌握这些不同类别的SQL语句,可以更有效地管理和操作数据库中的数据。

xycxycooo的博客 976

osgEarth 球上显示地形数据库

osgEarth 球上显示地形数据库 本文展示了一种由DSM和DEM得到Osgb工程,并在osgEarth球上显示的方法。其中DSM、DOM到Osgb工程的转换由VPB(VirtualPlanetBuilder)来实现,并采用Model图层将Osgb工程在球上显示。 本文主要解决一下问题: VPB编译 VPB生成地形 地形在球上显示 目录 1 前言 2 VPB编译与使用 3 地形在osgEarth球上显示 内容 1 前言 VirtualPlanetBuilder是一个开源代码工具,用于根据

CPWWHSU的博客 2436

戴尔PowerEdge R740服务器安装Debian系统后无法显示磁盘阵列

【代码】戴尔PowerEdge R740服务器安装Debian系统后无法显示磁盘阵列。

路~可以走过 1898

JavaWeb——Mybatis-XML映射文件(概述、XML 映射文件的规范、XML 映射文件结构、MyBatis X 插件介绍)

XML 映射文件是 MyBatis 主要的 SQL 配置方式之一,用于存储 SQL 语句并将其与 Mapper 接口关联。安装 MyBatis X在 IDEA 中打开Plugins搜索MyBatis X点击Install并启用插件快速跳转功能在EmpMapper接口方法前的小鸟图标 🐦点击可跳转到对应的 SQL 语句在 XMLselect语句前点击小鸟图标,可跳转到对应的 Mapper 方法XML 映射文件的核心要点文件命名一致namespace需匹配全类名SQLid需匹配方法名。

li13437542099的博客 1779

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

MyBatis源码系列之三:SQL映射文件解析

欢迎来到MyBatis源码系列的第三篇文章。在前两篇文章中,我们介绍了MyBatis的总览和环境准备,以及配置文件的解析过程。本篇文章将深入探讨MyBatis的SQL映射文件解析过程,这是MyBatis框架中非常重要的一部分。

Dingxiaowei77的专栏 349

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

MyBatis的映射文件和SQL语句

1.背景介绍 MyBatis是一款流行的Java持久层框架,它可以简化数据库操作,提高开发效率。在MyBatis中,映射文件和SQL语句是其核心组件,用于定义数据库操作的映射关系。在本文中,我们将深入探讨MyBatis的映射文件和SQL语句,揭示其核心概念、算法原理、最佳实践以及实际应用场景。 1. 背景介绍 MyBatis起源于iBATIS,是一款基于Java的持久层框架,它可以简化数据库...

AI天才研究院 1153

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

javaee入门之旅之mybatis---(4)映射文件详解

MyBatis 映射文件是用于定义 SQL 查询、插入、更新、删除等操作的XML 文件。这些文件包含了 SQL 语句以及它们与 Java 方法之间的映射关系。通过映射文件,MyBatis 可以将 Java 对象与数据库表之间进行映射,并提供了灵活的配置选项来满足各种需求。在整个应用程序中,可以有多个映射文件,每个映射文件对应于一个或多个相关联的数据访问接口。通过这些映射文件,MyBatis 提供了一种优雅的方式来进行数据库操作,同时也提供了良好的可维护性和可扩展性。命名空间(Namespace)

xmuci的博客 1953

MyBatis的映射文件

select>元素映射一个查询语句,id属性用于指定该映射关系在当前命名空间的唯一标识符,parameterType用于指定传入参数的完全限定类名或别名,resultType用于指定返回结果的完全限定类名或别名,SQL语句中#{id}表示通过占位符的形式接收参数id。元素用于映射插入语句,元素用于映射更新语句,元素用于映射删除语句。是MyBatis中最常用的元素之一,主要用于映射查询语句,它包含了SQL语句、参数类型、返回值类型等信息。

DDDF98765的博客 995

Mybatis框架(四):Mybatis的映射文件详解

一、mybatis映射文件的结构 SQL 映射文件顶级元素(按照应被定义的顺序列出): cache– 对给定命名空间的缓存配置。 cache-ref– 对其他命名空间缓存配置的引用。 resultMap– 是最复杂也是最强大的元素,用来描述如何从数据库结果集中来加载对象。 parameterMap– 已废弃!老式风格的参数映射。更好的办法是使用内联参数,此元素可能在将来被移除。 ...

yu1755128147的博客 476

SQL映射文件

MyBatis 真正的强大在于SQL映射语句,也是它的魅力所在,专注于SQL,功能强大,SQL映射的配置却是相当简单。SQL映射文件的几个顶级元素(按照定义的顺序)

2301_78955858的博客 313

MyBatis框架(SQL映射文件详解)

SQL几个顶级元素: mapper:SQL映射文件的根元素。 cache:为给定命名空间的缓存配置。 cache-ref:引用其他命名空间中的缓存配置。 resultMap:用来描述查询结果集中的字段和Java实体类属性的对应关系。 sql:定义可重用的SQL语句块。 insert:映射insert语句。 update:映射update语句。 delete:映射delete语句。 s

le12345678934694的博客 875

Mybatis总结

Mybatis 的映射文件中,前面我们的 SQL 都是比较简单的,有些时候业务逻辑复杂时,我们的 SQL是动态变化的,此时在前面的学习中我们的 SQL 就不能满足要求了。传统的使用JDBC的方法,相信大家在组合复杂的的SQL语句的时候,需要去拼接,稍不注意哪怕少了个空格,都会导致错误。Mybatis的动态SQL功能正是为了解决这种问题,其通过 if, choose, when, otherwise, trim, where, set, foreach标签,

yuyuyuyuhhjhvfff的博客 136

【手把手带你玩转MyBatis】基础篇:一文读懂XML映射文件

在MyBatis框架中,SQL映射文件扮演着至关重要的角色,它是Java接口方法与数据库操作之间的重要纽带。通过XML映射文件,我们可以清晰地定义SQL查询、插入、更新和删除等操作,并指定结果集如何映射到Java实体类。通过深入理解并熟练掌握MyBatis的XML映射文件编写技巧,开发者能够更加灵活高效地进行数据库操作,同时保持代码的清晰度和可维护性。:当表结构与实体类不完全匹配或者存在复杂关联关系时,需要定义更详细的结果映射。:直接指定返回结果类型的全限定类名,适用于表结构与实体类完全匹配的情况。

qq_58366795的博客 1915

MyBatis 如何将 Mapper 接口与其 XML 映射文件关联:深入原理与实现

MyBatis 是一个简单、灵活的持久层框架,它通过 SQL 语句将 Java 对象与数据库进行映射。MyBatis 支持基于 XML 和注解的配置方式。在实际开发中,XML 映射文件与 Mapper 接口的关联是 MyBatis 的核心功能之一。通过这种关联,开发者可以在 Mapper 接口中定义方法,并在 XML 文件中编写 SQL 语句,从而实现数据操作。MyBatis 中 Mapper 接口与 XML 文件的关联过程,主要通过namespace和id来匹配。

2301_79858914的博客 6113

MyBatis学习存档(3)——mapper.xml映射文件

MyBatis 真正的强大在于映射语句,专注于SQL,功能强大,SQL映射的配置却是相当简单 所以我们来看看映射文件的具体结构 一、xml节点结构 mapper为根节点- namespace命名空间 cache - 配置给定命名空间的缓存 cache-ref – 从其他命名空间引用缓存配置 resultMap –用来描述数据库结果集和对象的对应关系 sql – 可以重...

weixin_30849591的博客 253

Mybatis 映射文件Mapper.xml中的固定部分文件头<!DOCTYPE mapper PUCBLIC ““ >

Mybatis 映射文件Mapper.xml中的固定部分。

qq_45258618的博客 284

JAVA开发中 MyBatis XML 映射文件 的作用

它的作用是将 Java 方法与 SQL 语句关联起来,实现持久化操作(如查询、插入、更新和删除)。通过使用 XML 映射文件,开发者可以灵活地管理 SQL 语句,同时保持代码的清晰和可维护性。MyBatis 的 XML 映射文件在持久化操作中承担了非常重要的角色。)是 MyBatis 框架的重要组成部分,主要用于定义。可以将查询结果的字段与 Java 对象的属性映射。MyBatis 支持通过 #{}

weixin_64401027的博客 1668
上一篇: MyBatis 配置文件的作用和结构
下一篇: MyBatis 中常用的 SQL 语句
冰糖心书房
博客等级 码龄15年 6016粉丝 690原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

冰糖心书房

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值