动态sql

当使用了@Param注解,要出现指定的参数名

当没有使用@Param注解,要出现param1,param2

当使用了POJO,那么test中出现的是POJO类的属性名

sql语句

注意如果where中都是if,需要在前边加一个1=1否则可能报错

where标签的作用:让where子句更加动态智能:

所有条件都为空时,保证不会生成where语句

自动去除某些条件前面多余的and或or

trim标签

prefixOverrides="" 加前缀

suffix="" 加后缀

prefix="" 去掉前缀

suffixOverrides="and|or"> 去掉and或or的后缀

标签可以去除语句中的,

choose when... when otherwise标签

相当于if else if else

xxxx

yyyy

foreach标签的属性:

collection指定数组或者集合,

item代表数组或集合中的元素的指代名,

separator代表循环之间的分隔符,

open表示foreach循环拼接的所有sql最前以什么开始

close表示以什么结束

建议起个别名

也可以有其他形式

eg:传参为(@Param("cars")Listcars)

insert into t_car values

(null,#{car.carNUM,..........)

sql和include标签

可以声明一部分片段,在sql语句中inlude复用

你可能感兴趣的:(mybatis,mybatis)