Mybatis动态sql语句(OGNL语法)

Posted Peter_Yu

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Mybatis动态sql语句(OGNL语法)相关的知识,希望对你有一定的参考价值。

下面是Mybatis动态sql语句(即OGNL语法)的简单案例

 

1.创建表

技术分享图片
create table test(id int primary key auto_increment,name varchar(20),job varchar(20),dept varchar(20),sal int) charset=utf8;

insert into test values
(null,鲁班,java,,1456),
(null,后裔,java,,2440),
(null,刘禅,c,,3540),
(null,刘备,python,,4505),
(null,关羽,python,,1470),
(null,张飞,c,,2345),
(null,狄仁杰,java,,3640),
(null,兰陵王,c,,4000),
(null,花木兰,c,,1000),
(null,诸葛亮,java,,2047),
(null,甄姬,python,,3000),
(null,小乔,c,,4000),
(null,女蜗,java,,1000),
(null,妲己,java,,6705),
(null,公孙策,java,,null),
(null,百里守约,c,,null),
(null,小刘,python,,842),
(null,蔡文姬,python,null,500);
创建 test 表

 

2.<if> 标签的使用

    <select id="selectTest" resultType="bean.TestBean" parameterType="bean.TestBean">
    
        select * from test where
            <if test="job!=null">    <!--------------------这里的 job 本质调用parameterType参数的 get()方法  -->
                name=#{}                <!--------------------所以参数不能是基本类型(因为基本类型和包装类没有 get()方法)  -->
            </if>
            or name=‘后裔‘              <!--------------------如果 job 等于 null(即 参数.getJob() 等于null) ,那么语句这段sql语句变成如下所示  -->        
                                        <!--------------------select * from where or name=‘后裔‘ 报错!,这时候要用 where 标签防止这种情况发生  -->
    </select>

 

---恢复内容结束---

以上是关于Mybatis动态sql语句(OGNL语法)的主要内容,如果未能解决你的问题,请参考以下文章

mybatis中动态sql语句都有哪些

MyBatis动态SQL

MyBatis的动态SQL详解

MyBatis 动态SQL

mybatis--MyBatis动态SQL语句

mybatis 动态sql语句