好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

在mybatis 中使用if else 进行判断的操作

我就废话不多说了,大家还是直接看代码吧~

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

<!-- 查询物品的id -->

     <select id= "checkItemsId" parameterType= "pd" resultType= "java.lang.Integer" >

         SELECT

             i.itemsid

         FROM pq_goods_items i

        

         <where>

    <!--方式一使用choose的方式查询-->

    <!-- <choose>

     <when test= "parentId !=0 " >parentTypeId=#{parentId}</when>

     <when test= "parentId==0" >parentTypeId is null </when>

    </choose> -->

    <!--方式二使用 if 的方式查询-->

    < if test= "color!=null" >

      i.personone=#{personone}

             AND i.persontwo=#{persontwo}

    AND i.color=#{color}

    </ if >

    < if test= "color==null" >

      i.personone=#{personone}

             AND i.persontwo=#{persontwo}

    AND i.color is null

    </ if >

   </where>

     </select>

需要注意的是 使用了where标签以后,sql中不在使用where字段来限制条件

如果判断条件有多个 中间用 and 表示并列

?

1

< if test= "color!=null and personone!=null" >

补充:mybaits中if 多个test 和 if else 分支支持

mybaits中if 多个test

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

<select id= "selectByDynamicallyWithPage" parameterType= "map" resultMap= "BaseResultMap" >

  select

  <include refid= "Base_Column_List" />

  from gene_polymorphism

  <where>

   diag_id = #{conds.diagId,jdbcType=INTEGER}

   < if test= "conds.chromesome!=null and conds.chromesome!=''" >

   and chromesome = #{conds.chromesome,jdbcType=VARCHAR}

   </ if >

   < if test= "conds.startPos!=null" >

   and start_pos &gt;= #{conds.startPos,jdbcType=BIGINT}

   </ if >

  </where>

</select>

if else分支:

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

<select id= "selectByDynamicallyWithPage" parameterType= "map" resultMap= "BaseResultMap" >

  select

  <include refid= "Base_Column_List" />

  from gene_polymorphism

  <where>

   diag_id = #{conds.diagId,jdbcType=INTEGER}

   < if test= "conds.chromesome!=null" >

   and chromesome = #{conds.chromesome,jdbcType=VARCHAR}

   </ if >

   < if test= "conds.startPos!=null" >

   and start_pos &gt;= #{conds.startPos,jdbcType=BIGINT}

   </ if >

   < if test= "conds.endPos!=null" >

   and end_pos &lt;= #{conds.endPos,jdbcType=BIGINT}

   </ if >

   < if test= "conds.geneTypes!=null" >

   <!--and gene_type in-->

   <!--<foreach collection= "conds.geneTypes" open= "(" close= ")" item= "item" separator= "," >-->

    <!--#{item,jdbcType=VARCHAR}-->

   <!--</foreach>-->

   and (

   <foreach collection= "conds.geneTypes" item= "item" separator= "or" >

    gene_type like CONCAT( '%' ,CONCAT(#{item,jdbcType=VARCHAR}, '%' ))

   </foreach>

   )

   </ if >

   < if test= "conds.geneChange!=null" >

   and gene_change like CONCAT( '%' ,CONCAT(#{conds.geneChange,jdbcType=VARCHAR}, '%' ))

   </ if >

  </where>

  order by

  <trim suffixOverrides= "," >

   <choose>

   <when test= "conds.chromesomeSort!=null and conds.chromesomeSort=='asc'" >

    chromesome asc ,

   </when>

   <when test= "conds.chromesomeSort!=null and conds.chromesomeSort=='desc'" >

    chromesome desc ,

   </when>

   </choose>

   <choose>

   <when test= "conds.startPosSort!=null and conds.startPosSort=='asc'" >

    start_pos asc ,

   </when>

   <when test= "conds.startPosSort!=null and conds.startPosSort=='desc'" >

    start_pos desc ,

   </when>

   <otherwise>

    id desc

   </otherwise>

   </choose>

  </trim>

   limit #{startRow,jdbcType=INTEGER} ,#{pageSize,jdbcType=INTEGER}

  <!-- order by id desc limit #{startRow,jdbcType=INTEGER} ,#{pageSize,jdbcType=INTEGER} -->

  </select>

以上为个人经验,希望能给大家一个参考,也希望大家多多支持。如有错误或未考虑完全的地方,望不吝赐教。

原文链接:https://blog.csdn.net/pqsas_com/article/details/75337608

查看更多关于在mybatis 中使用if else 进行判断的操作的详细内容...

  阅读:27次