好得很程序员自学网

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

mybatis中的if-else及if嵌套使用方式

if-else 及if嵌套使用方式

案例一:if-else

在使用mybatis mapper 动态sql时,不免会出现if-else的使用,但是好像又没有这种语法,提供的是choose标签代替if-else

例如:

?

1

2

3

4

5

6

7

8

9

10

11

12

select * from t_stu t

< where >

    <choose>

        < when test= "query == 0" >

            and t.status = 1 

        </ when >

        <otherwise>

                and t.status   NOT IN (9,5)

        </otherwise>

    </choose>

    and t.delete_status = 1

</ where >

也可以用多个if判断实现:

?

1

2

3

4

5

6

7

8

9

10

select * from t_stu t

< where >

    <if test= "query == 0" >

        and t.status = 1 

    </if>

    <if test= "query != 0" >

        and t.status   NOT IN (9,5)

    </if>

    and t.delete_status = 1

</ where >

案例二:if嵌套

在实际编码过程中会有一些判断条件会一直重复使用,一直写在if标签中写的代码会特长,而且臃肿

?

1

2

3

4

5

6

7

8

9

10

11

12

select * from t_stu t

< where >

    <if test= "query == 0 and type = 1" >

        and t.type = 'we' and t. delete = 1

    </if>

    <if test= "query == 0 and type = 2" >

        and t.type = 'wq' and t. delete = 1

    </if>

    <if test= "query == 0 and type = 3" >

        and t.type = 'wr' and t. delete = 1

    </if>

</ where >

变现后:

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

select * from t_stu t

< where >

    <if test= "query == 0" >

        <if test= "type = 1" >

            and t.type = 'we'

        </if>

          <if test= "type = 2" >

            and t.type = 'wq'

        </if>

        <if test= "type = 3" >

            and t.type = 'wr'

        </if>

    </if>

    and t. delete = 1

</ where >

mybatis if-else写法

mybaits中没有else要用chose when otherwise代替

?

1

2

3

4

5

6

7

8

<choose>

    < when test= "" >

        //...

    </ when >

    <otherwise>

        //...

    </otherwise>

</choose>

以上为个人经验,希望能给大家一个参考,也希望大家多多支持。

原文链接:https://blog.csdn.net/qq_43040552/article/details/104747240

查看更多关于mybatis中的if-else及if嵌套使用方式的详细内容...

  阅读:24次