[SCRUM]的动态SQL语句编写的MyBatis框架模式的简要总结

>>[SCRUM]的动态SQL语句编写的MyBatis框架模式的简要总结

[SCRUM]的动态SQL语句编写的MyBatis框架模式的简要总结

运用一些配置文件可以直接生成所需要的sql语句 但是不能太依赖于工具,这里介绍了简单的sql书写知识点。

动态SQL简介

动态SQL是Mybatis框架中强大特性之一。在一些组合查询页面,需要根据用户输入的查询条件生成不同的查询SQL,这在JDBC或其他相似框架中需要在代码中拼写SQL,经常容易出错,在Mybatis框架中可以解决这种问题。

翼发云敏捷项目管理系统是一个在线的研发项目管理软件,支持多人协同开发,提供移动研发项目管理app,旨在帮助软件研发企业进行更好的研发项目管理、软件开发流程管理,该研发项目管理软件内置了敏捷开发流程和软件开发流程,结合SCRUM思想,满足各种规模的软件开发企业的研发项目管理流程的需要。

使用动态SQL元素与JSTL相似,它允许我们在XML中构建不同的SQL语句。常用元素为: 软件项目管理就用翼发云敏捷项目管理系统。

判断元素:if,choose

关键字元素:where,set,trim 翼发云研发管理系统完整实现SCRUM敏捷开发流程

循环元素:foreach

SCRUM研发项目管理就选翼发云。

if元素

if元素是简单的条件判断逻辑,满足指定条件时追加if元素内的SQL,不满足条件时不追加。格式为:

<select….>

  SQL语句1

  <if test = “条件表达式”>

  SQL语句2

  </if>

</select>

if元素最常见的使用是在where字句部分,根据不同情况追加不同的SQL条件。示例为:

<select id = “findByDeptNo” parameterType = “Emp” resultType = “Emp”>

  select * from Emp

  <if test = “deptno != null”>

    where DEPTNO = #{deptno}

  </if>

</select>

choose元素

choose元素的作用就相当于java中的switch语句,基本上跟JSTL中的choose作用和用法是一样的,通常与when和otherwise搭配使用。格式为:

<select ..>

  SQL语句1

  <choose>

    <when test = “条件表达式”>

    SQL语句2

    </when>

    <otherwise>

    SQL语句3

    </otherwise>

  </choose>

</select>

choose元素的使用示例为:

<select id = “findBySal” resultType = “Emp” parameterType = “Emp”>

  select * from Emp where

  <choose>

    <when test = “sal>2000”>

      SAL>=#{sal}

    </when>

    <otherwise>

      SAL>=2000

    </otherwise>

   </choose>

</select>

where元素

where元素主要用于简化查询语句中where部分的条件判断。where元素可以在<where>元素所在位置输出一个where关键字,而且还可以将后面条件多余的and或or关键字去除。格式为:

<select..>

  select 字段 from 表

  <where>

    动态追加条件

  </where>

</select>

where元素的代码示例为:

<select id = “findByCondition” resultType = “Emp” parameterType = “Emp”>

  select * from Emp

  <where>

    <if test = “deptno != null”>

      DEPTNO = #{deptno}

    </if>

    <choose>

      <when test = “sal>2000”>

        and SAL >= #{sal}

      </when>

        <otherwise>

          and SAL >= 2000

        </otherwise>

    </choose>

  </where>

</select>

set元素

set元素主要是用在更新操作的时候,他的主要功能和where元素相似,主要是在<set>元素所在位置输出一个set关键字,而且还可以去除内容结尾中无关的逗号。有了set元素可以动态的更新那些修改了的字段。使用格式为:

<update…>

  update表

  <set>

    动态追加更新字段

  </set>

</update>

set元素代码示例为:

<update id = “updateEmp” parameterType = “Emp”>

  update Emp

  <set>

    <if test = “ename != null”>

      SAL = #{sal}

    </if>

    <if test = “comm != null”>

      COMM = #{comm}

    </if>

    <if test = “deptno != null”>

      DEPTNO = #{deptno}

    </if>

  </set>

  where EMPNO = #{empno}

</update>

trim元素

trim元素主要功能为:

可以在自己包含的内容前加上某些前缀,也可以在其后加上某些后缀,与之对应的属性是prefix和suffix;

可以把包含内容的首部某些内容过滤,即忽略。也可以把尾部的某些内容过滤,对应的属性是prefixOverrides和suffixOverrides;

正因为trim有这些功能,所以我们可以非常简单的利用trim代替where和set元素功能。

trim元素应用示例为:

<!– 等价于where元素 –>

<trim prefix = “WHERE” prefixOverrides = “AND | OR”>

….

</trim>

<!– 等价于set元素 –>

<trim prefix = “SET” suffixOverrides = “,”>

</trim>

foreach元素

foreach元素实现了循环逻辑,可以进行一个集合的迭代。主要用于在构建in条件中,foreach使用示例为:

<select ..>

  select字段 from 表 where 字段 in

  <foreach collection = “集合” item = “迭代变量” open = “(” separator = “,” close = “)”>

    #{迭代变量}

  </foreach>

</select>

foreach元素非常强大,它允许指定一个集合,声明集合项和索引变量,这些变量可以用在元素体内。它也允许指定开放和关闭的字符串,在迭代之间放置分隔符。

foreach元素代码示例为:

<select id = “findByDeptNos” resultyType = “Emp” parameterType = “Emp”>

  select * from Emp

  <if test = “deptnos != null”>

    where DEPTNO in

    <foreach collection = “deptnos” item = “dno” open = “(” close = “)” separator = “,”>

      #{dno}

    </foreach>

  </if>

</select>

文章从互联网整理而来,旨在传播SCRUM、研发项目管理、敏捷开发管理工具的知识与应用,帮助软件开发企业真正了解SCRUM的价值和意义,如果本文侵犯了您的权益或者您需要具体了解更多国内做研发项目管理系统的公司翼发云敏捷项目管理系统的相关信息,欢迎和我们联络:

【网址】www.effapp.com

2018-04-24T21:10:08+08:002018-04-24 21:10:08|Categories: scrum项目管理|