MyBatis day3

      1、 什么是动态sql

                动态SQL是一种在运行时根据需要生成和执行SQL语句的技术。传统的静态SQL是在编译时生成SQL语句,而动态SQL可以根据不同的条件和情况动态地生成SQL语句。动态SQL通常用于构建复杂的查询语句,根据不同的参数和条件来动态地拼接SQL语句的各个部分。

动态SQL的优点是可以根据不同的条件生成不同的SQL语句,提高了灵活性和可扩展性。它还可以避免SQL注入攻击,因为动态SQL会对输入的参数进行处理和转义,确保生成的SQL语句是安全的。

动态SQL的实现方式有多种,最常见的是使用字符串拼接的方式,将不同的SQL语句片段拼接成完整的SQL语句。另外,一些编程语言和框架也提供了更高级的动态SQL的实现方式,如使用占位符、条件判断语句、循环语句等来动态生成SQL语句。

      2、MyBatis框架动态SQL的常用标签

         1.<if>标签:用于条件判断,根据条件动态拼接SQL语句。

        

        2.<choose><when><otherwise>标签:用于多个条件选择,根据不同的条件选择不同的SQL语句片段。
例如:

          

3.<foreach>标签:用于循环遍历集合,动态生成SQL语句。

        

 4.<set><trim>标签都用于动态生成SQL中的SET子句,主要用于更新操作。 

<set>标签:

        

<trim>标签:

<trim>标签的prefix属性指定了SET子句的前缀,suffixOverrides属性指定了要移除的后缀。在<trim>标签内部,根据条件动态生成SET子句中的字段和值,并移除末尾多余的逗号。

使用<set>标签或<trim>标签可以灵活地根据条件动态生成SET子句,避免不必要的逗号或其他语法错误。根据具体的需求选择合适的标签来处理动态SQL。

3、MyBatis框架动态SQL的常用标签的组合使用。

1.用<if>标签和<where>标签: 

 2.使用<if>标签和<choose>标签:

3.使用<foreach>标签和<trim>标签:

通过选择和组合不同的动态SQL标签,可以根据具体的需求灵活地生成和拼接SQL语句的各个部分,实现动态SQL的功能。

4、MyBatis框架动态SQL处理集合参数

1.foreach处理数组类型的参数

        

ids是一个数组类型的参数,在<foreach>标签中,collection属性指定了数组参数的名称,item属性指定了在循环中的每个元素的名称。open属性指定了循环开始时的字符串,separator属性指定了每个元素之间的分隔符,close属性指定了循环结束时的字符串。

在循环中,使用#{item}来获取数组中的每个元素,并将它们拼接到SQL语句中的IN子句中。

通过使用<foreach>标签,可以方便地处理数组类型的参数,将数组中的元素动态地拼接到SQL语句中

 2.foreach标签处理List类型参数

list是传递给<foreach>标签的List类型参数,item是List中的每个元素,index是元素的索引

3.foreach标签处理Map类型参数

使用collection属性指定Map类型参数:

item是Map中的每个值,key是Map中的每个键 

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值