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);
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语法)的主要内容,如果未能解决你的问题,请参考以下文章