怎么把参数传递到SQL语句?
配置文件怎么接受参数?
接收到的参数怎么使用?
list的item就是元素,map的item是map里面的value
mybatis中的OGNL表达式
Mabatis中的OGNL表达式2
ognl表达式
ognl表达式
ognl操作符
ognl集合循环输出
集合类pgnl表达式取值
mybatis ognl表达式取值 写法
OGNL表达式
Mybatis中的OGNL表达式
OGNL表达式
OGNL表达式
Mybatis 中的 OGNL 表达式
Mybatis 中的 OGNL 表达式
动态SQL拼接
1、动态的给sql语句传入参数
一般把属性封装成一个类,传入这个类的对象,而sql配置文件中通过相应标签的parameterType属性指定该类的路径,如果是java中提供的数据类型,例如String不用写java.lang.String,直接写String即可。
2、sql语句动态的获取参数
在使用JDBC时进行判断参数是否为null,或者为""时,使用的是if语句,如果不为null,或者不为"",则使用append追加字符串。
而Mybatis使用<if test=""></if>进行判断,也就是OGNL表达式,Mybatis在sql配置文件中支持OGNL表达式。
Mybatis中的OGNL表达式
【1】取值范围 ———————— 标签的属性中
取值的范围可以是标签属性parameterType范围,也可以从其他标签属性中取出,例如<foreach collection=""></foreach>,这时就会从collection属性中取。
【2】取值写法
如果是传入的参数类型是String与基本数据类型,固定写法:_parameter
如果是自定义类型(Message):直接写属性名(command)
如果是集合类型,固定写法,大小写敏感:数组:array,List:list,Map:_parameter
从集合中取出一条数据:
数组——array[索引](String[]),如果不是String或者基本类型,则是array[索引].属性名(Message[])
List——list[索引](List<String>),如果不是String或者基本类型,则是
list[索引].属性名(List<Message>)
Map——_parameter.key(Map<String,String>),_parameter可以省略,一般写key.属性名(Map<String,Message>),这个key就是java中存入的key名称
利用foreach标签可以从集合中取出数据:Mybatis的sql配置文件提供了<foreach collection="array" index="i" item="item">,可以循环数组、List、Map集合,collection属性指向一个完整的集合,数组和List中index的i代表索引或者下标,在Map中i代表key,item代表循环某一个具体的数据,在Map中指的是value。
操作符:OGNL表达式目的,并不只是获取值,也可能是对获取到的值进行算数运算或者逻辑运算,OGNL操作符分为两类,一类是java支持的操作符,OGNL都支持,另一类是OGNL特有的操作符(mod取模、in判断某个值是否在一个集合中)如下图
OGNL表达式,里面大小写敏感
MyBatis中的OGNL表达式(1)