条件
<choose> <when test="isUpload"> </when> <otherwise> </otherwise> </choose> choose标签是按程序判断其外部when标签中的test条件出否成立,如果有一个成立,则 choose 完结。当 choose 中所有 when 的条件都不满则时,则执行 otherwise 中的sql。相似于Java 的 switch 语句,choose 为 switch,when 为 case,otherwise 则为 default。 <where> <if> <where> <if test="id != null ">id=#{id}</if> <if test="name != null and name.length()>0" >and name=#{name}</if> <if test="gender != null and gender.length()>0">and gender = #{gender}</if> </where>
函数
IFNULL() 函数用于判断第一个表达式是否为 NULL,如果为 NULL 则返回第二个参数的值,如果不为 NULL 则返回第一个参数的值。
去余
<trim prefix="" suffix="" suffixOverrides="" prefixOverrides=""></trim>prefix:在trim标签内sql语句加上前缀。suffix: 在trim标签内sql语句加上后缀。suffixOverrides:指定去除多余的后缀内 容,如:suffixOverrides=",",去除trim标签内sql语句多余的后缀","。
汇合
in 搭配<foreach> 传递多个参数item:汇合中元素迭代时的别名,该参数为必选。index:在list和数组中,index是元素的序号,在map中,index是元素的key,该参数可选open:foreach代码的开始符号,个别是(和close=")"合用。罕用在in(),values()时。该参数可选separator:元素之间的分隔符,例如在in()的时候,separator=","会主动在元素两头用“,“隔开,防止手动输出逗号导致sql谬误,如in(1,2,)这样。该参数可选。close: foreach代码的敞开符号,个别是)和open="("合用。罕用在in(),values()时。该参数可选。collection: 要做foreach的对象,作为入参时,List对象默认用"list"代替作为键,数组对象有"array"代替作为键,Map对象没有默认的键。当然在作为入参时能够应用 @Param("keyName")来设置键,设置keyName后,list,array将会生效。 除了入参这种状况外,还有一种作为参数对象的某个字段的时候。举个例子:如果User有属性List ids。入参是User对象,那么这个collection = "ids".如果User有属性Ids ids;其中Ids是个对象,Ids有个属性List id;入参是User对象,那么collection = "ids.id"
获取某个要害值
在mapper文件加useGeneratedKeys="true" keyProperty="id"。这里是获取的id