当前位置:Gxlcms > 数据库问题 > 动态SQL语句:定义(一)

动态SQL语句:定义(一)

时间:2021-07-01 10:21:17 帮助过:36人阅读

用法:if( condition ){ body },或if( condition ){ body } else { body }

说明:condition支持JavaScript语法。

 

  • 选择语句(choose)

    用法:choose{ when(condition){ body } else { body } }

    说明:condition支持JavaScript语法;when子句可以存在多个;

     

  • 结构语句(where)

    用法:where{ body }

    说明:用于where语句,能够去除body前后多余的【and】或【or】。

     

  • 结构语句(set)

    用法:set{ body }

    说明:用于update语句,能够去除body前后多余的【,】。

     

  • 结构语句(value)

    用法:value{ body }

    说明:用于insert语句,能够生成insert语句。

     

  • 参数语句(#)

    用法:#{name}

    说明:能够将参数替换为【?】,避免SQL注入。

     

  • 参数语句($)

    用法:${name}

    说明:能够将参数替换成字符串,存在SQL注入。

     

  • 参数语句(@)

    用法:@{name}

    说明:标记存储过程的返回值。

     

  • 参数语句(in)

    用法:in{name}

    说明:用于in语句,能够将List参数替换成多个【?】。

     

  • 分页语句(page)

    用法:page(a, b){ body } order { column }

    说明:能够动态生成分页语句;其中,a为每页行数,b为当前页数;

  •  

    条件判断函数


    1. isNull()

      说明:测试对象的值,若为null则为true,否则为false。

       

    2. isNotNull()

      说明:测试对象的值,功能与isNull()相反。

       

    3. isAllNull()

      说明:测试多个对象的值,若存在对象使isNotNull()为true则为false,否则为true。

       

    4. isAnyNull()

      说明:测试多个对象的值,若存在对象使isNull()为true则为true,否则为false。

       

    5. isEmpty()

      说明:测试对象的值,若为:null或空字符串或数组长度为0,则为true,否则为false。

       

    6. isNotEmpty()

      说明:测试对象的值,功能与isEmpty()相反。

       

    7. isAllEmpty()

      说明:测试多个对象的值,若存在对象使isNotEmpty()为true则为false,否则为true。

       

    8. isAnyEmpty()

      说明:测试多个对象的值,若存在对象使isEmpty()为true则为true,否则为false.

       

    9. isBlank()

      说明:测试对象的值,若为:null或空字符串或空白字符(\t, \n, \r等)则为true,否则为false。

       

    10. isNotBlank()

      说明:测试对象的值,功能与isBlanl()相反。

       

    11. isAllBlank()

      说明:测试多个对象的值,若存在对象使isNotBlank()为true则为false,否则为true。

       

    12. isAnyBlank()

      说明:测试多个对象的值,若存在对象使isBlank()为true则为true,否则为false。

     

    示例


    • select语句

      1 select id, account, name, sex from user where{
      3     if(isNotEmpty(name)){
      5         name = #{name}
      7     }
      9 }
    • update语句

       1 update user set{
       3     if(isNotEmpty(name)){
       5         name = #{name},
       7     }
       9     if(isNotEmpty(sex)){
      11         sex = #{sex},
      13     }
      15 }
    • insert语句

      1 insert user values{
      2     id = #{id}, account = #{account}, name = #{name}
      3     if(isNotEmpty(sex)){
      4         sex = #{sex}
      5     }
      6 }
    • delete语句

      1 delete from user where{
      2     if(isNotEmpty(id)){
      3          id = #{id}
      4     }else{ 
      5         1 = 2
      6     }
      7 }

    动态SQL语句:定义(一)

    标签:sql语法   逻辑   想法   目标   asc   isa   san   delete   log   

    人气教程排行