MyBatis XML 映射文件中的 SQL 语句可以分为动态语句和静态语句

这篇具有很好参考价值的文章主要介绍了MyBatis XML 映射文件中的 SQL 语句可以分为动态语句和静态语句。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

静态查询:

动态查询:

静态更新:

动态更新:

静态删除:

动态删除:

动态语句和静态语句在 MyBatis 中的作用如下:


静态查询:

静态查询是指在 SQL 语句中执行固定的查询操作,查询的条件和内容是预先确定的,不会随着用户输入或其他条件的改变而改变。以下是一个静态查询的示例:

<select id="selectUsersByRole" resultType="com.example.goods_admin.entity.User">
  SELECT * FROM user
  WHERE name= 'admin'
</select>

在上述的例子中,查询语句中的条件 name= 'admin' 是固定的,无论用户输入什么内容,都会查询出 "name" 字段等于 "admin" 的用户信息。

动态查询:

动态查询是指在 SQL 语句中根据用户输入或其他条件改变查询的操作。查询的条件和内容是根据用户的输入或其他条件动态生成的。以下是一个动态查询的示例: 

    <select id="seleteUser" resultType="com.example.goods_admin.entity.User">
        select * from user
            <where>
                <if test="keyWord !=null and keyWord!=''">
                    userName like concat('%', #{keyWord}, '%')
                </if>
            </where>

    </select>

在这个示例中,查询语句根据用户输入的关键字来动态生成查询条件。如果用户输入了关键字,那么将会根据userName进行模糊匹配查询。

静态更新:

静态更新是指在 SQL 语句中执行固定的更新操作,更新的内容和条件是预先确定的,不会随着用户输入或其他条件的改变而改变。以下是一个静态更新的示例:

<update id="updateUserStatus" parameterType="com.example.goods_admin.entity.User">
  UPDATE user
  SET status = 'active'
  WHERE id = #{id}
</update>

在上述的例子中,更新语句中的条件 id = #{id} 是固定的,无论用户输入什么内容,都会更新 "id" 字段等于给定参数 "id" 的用户状态为 "active"。

动态更新:

动态更新是指在 SQL 语句中根据用户输入或其他条件改变更新的操作。更新的内容和条件是根据用户的输入或其他条件动态生成的。以下是一个动态更新的示例:

<update id="updateUser" parameterType="com.example.goods_admin.entity.User">
  UPDATE user
  <set>
    <if test="username != null">
      username = #{username},
    </if>
    <if test="email != null">
      email = #{email},
    </if>
  </set>
  WHERE id = #{id}
</update>

在这个示例中,更新语句根据用户输入的用户名和邮箱来动态生成更新内容,同时根据给定参数 "id" 来确定更新的条件。

静态删除:

静态删除是指在 SQL 语句中执行固定的删除操作,删除的条件是预先确定的,不会随着用户输入或其他条件的改变而改变。以下是一个静态删除的示例:

<delete id="deleteUserById" parameterType="java.lang.Integer">
  DELETE FROM user
  WHERE id = #{id}
</delete>

在上述的例子中,删除语句中的条件 id = #{id} 是固定的,无论用户输入什么内容,都会删除 "id" 字段等于给定参数 "id" 的用户。

动态删除:

动态删除是指在 SQL 语句中根据用户输入或其他条件改变删除的操作。删除的条件是根据用户的输入或其他条件动态生成的。以下是一个动态删除的示例:

<delete id="deleteUser" parameterType="com.example.goods_admin.entity.User">
  DELETE FROM user
  WHERE 1=1
  <if test="username != null">
    AND username = #{username}
  </if>
  <if test="email != null">
    AND email = #{email}
  </if>
</delete>

在这个示例中,删除语句根据用户输入的用户名和邮箱来动态生成删除条件。

动态语句和静态语句在 MyBatis 中的作用如下:

  1. 静态语句:

    • 静态语句是指在 SQL 语句中执行固定的操作,不会随着用户输入或其他条件的改变而改变。
    • 静态语句适用于那些更新、插入或删除的操作,在这些操作中,更新内容和条件是预先确定的。
    • 静态语句可以通过 MyBatis XML 映射文件来定义,将 SQL 语句与 Java 代码进行分离,提高了代码的可维护性。
    • 静态语句在执行过程中可以利用 MyBatis 的参数映射功能,将 Java 对象的属性值映射到 SQL 语句中的占位符上。
  2. 动态语句:

    • 动态语句是根据用户输入或其他条件改变进行的操作,更新内容和条件是根据动态生成的。
    • 动态语句适用于那些需要根据不同情况执行不同操作的场景,例如根据用户的搜索条件动态生成查询语句。
    • 动态语句可以通过 MyBatis XML 映射文件中的条件判断和循环等标签来实现,根据不同条件动态生成 SQL 语句的不同部分。
    • 动态语句可以使 SQL 语句更加灵活,根据不同的条件在运行时动态生成最终的 SQL 语句,提高了系统的可扩展性和适应性。

总结起来,静态语句适用于固定的操作,而动态语句适用于根据不同条件进行动态生成 SQL 语句的操作。通过使用静态语句和动态语句,可以使数据库操作更加灵活和可维护。文章来源地址https://www.toymoban.com/news/detail-801406.html

到了这里,关于MyBatis XML 映射文件中的 SQL 语句可以分为动态语句和静态语句的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【Spring 篇】深入探讨MyBatis映射文件中的动态SQL

    MyBatis,这个名字在Java开发者的世界中犹如一道光芒,照亮着持久层操作的道路。而在MyBatis的映射文件中,动态SQL则是一个让人爱-hate的存在。有时候,你感叹它的灵活性,有时候,你可能会为它的繁琐而头痛。但别担心,我们将在本文中一起揭开动态SQL的神秘面纱,带你领

    2024年01月24日
    浏览(46)
  • MyBatis XML 映射文件

    MyBatis 的 XML 映射文件包含以下几个部分: mapper 元素:定义了 XML 映射文件的根元素,其中包含了命名空间和 SQL 语句等信息。 select 、 insert 、 update 、 delete 元素:分别用于定义查询、插入、更新、删除操作的 SQL 语句。 resultMap 元素:用于定义结果集的映射关系。 parameterM

    2024年02月08日
    浏览(37)
  • 【Mybatis】XML映射文件

    目录  11.3XML映射文件         1.select          2.insert、update、delete         3.Sql          4.parameters(参数)          5.resultMap         6.resultMap 使用示例          (1)在先前创建的数据库stu中创建表student 2,并插入若干条数据,代码如下:       

    2024年02月14日
    浏览(34)
  • MyBatis的XML映射文件

    目录 2.1 XML配置文件规范 在Mybatis中使用XML映射文件方式开发,需要符合一定的规范 - XML映射文件定义规范: 2.2 XML配置文件实现 第1步:创建XML映射文件 第2步:编写XML映射文件 2.3 MybatisX的使用 总结: Mybatis的开发有两种方式: 注解 XML配置文件 通过XML配置文件的形式来配置

    2024年02月13日
    浏览(32)
  • MyBatis的使用(XML映射文件)

    MyBatis基于注解开发简单便捷,但是弊端是失去SQL语句的灵活性,不能根据实际情况产生不同的SQL语句 MyBatis除了支持注解开发以外,还支持一种开发方式:XML映射文件,将SQL语句写到XML映射文件中,基于更多种的选择可以让SQL变得更加灵活 1.开发方式 1.和基于注解开发方式一

    2024年02月08日
    浏览(31)
  • MyBatis-XML映射文件

    规范 XML映射文件的名称与Mapper接口名称一致(EmpMapper对应EmpMpper.xml),并且将XML映射文件和Mapper接口放置在相同包下(同包同名) ​​​ 在maven项目结构中所有的配置文件都在resources目录之下,因此要在该目录下创建Mapper接口相同的文件目录,注意在创建目录时要使用 / 来

    2024年02月13日
    浏览(43)
  • mybatis(mybatis-plus)映射文件(XML文件)中特殊字符转义

    XML 文件在解析时会将五种特殊字符进行转义,当不希望语法被转义时,就需要进行特别处理,参考HTML字符转义规范Myabtis 中五个特殊字符 原始符号 符号含义 大于 小于 and \\\" 英文双引号 ’ 英文单引号 原始符号 转义字符 gt lt amp \\\" quot ’ apos

    2024年02月10日
    浏览(38)
  • MyBatis Plus Mapper.xml映射文件常用标签<if>、<foreach>、#{}、${}等

    一、判断 Integer、Long 等常数类参数 注意:判断常数类参数,只能判断 != null,不能判断 != \\\'\\\' 否则判断不会生效 二、判断 String 字符串类参数 注意:判断字符串类参数可以判断 != \\\'\\\' 三、判断参数值与指定的值,是否相等或不相等 注意: 1、判断 Integer、Long 等常数类型等于

    2024年02月09日
    浏览(48)
  • 解决IntelliJ IDEA在Mybatis 编写mapper.xml SQL语句时不自动提示SQL语句和数据库表的问题

    在Idea中链接数据库后,发现在MySql 的console中有SQL语句提示和数据表的提示,但是在编写mapper.xml中发现并没有提示,很烦,觉得效率下降。 在百度搜索后,发现了解决方法,出现了SQL语句的提示. 解决办法: 按下alt + enter,选择Language injection settings 然后选择SQL即可,但是这种

    2024年02月16日
    浏览(41)
  • mapper.xml中循环执行多条语句时报错,但是单独拿SQL到数据库却可以执行

    我是批量修改数据,用foreach标签包住update语句,报错信息如下: 最后解决,在数据源配置中添加参数:

    2024年02月12日
    浏览(31)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包