--- 动态sql的使用 ---
动态sql可以根据传入的数据来动态的决定最终执行的sql语句
他的核心实现是在xml格式的sql中依靠<if></if>标签来实现的,如果if中的条件判断为真,那么就会加上标签中的语句
就比如这一段代码,test中给的是条件判断语句,如果参数userName为空而passWord不为空,那么就不会再sql中加上,那么最终的sql语句为
insert user_info passWord, values (passWord,) 不过这时发现了会有后缀 , 的sql错误,可以自己去除 , 但是这明显不是治本的解决方案,我们可以使用<trim></trim>来处理前缀后缀的问题
trim中提供了4个参数来处理标签中的字符串
prefixOverrides:去掉前面的字符串 suffixOverrides:去掉后面的字符串 prefix:在前面加上字符串 suffix:在后面加上字符串
这样写就会把字符串的前后逗号都给去掉,并且加上左右括号
<foreach> 循环拼接字符串标签,他能循环遍历参数中的arr list set中的参数
collection:这是参数的名字 item:表示这个参数的值可以用被那个字段引用,这里的id表示的是可以被where后面的id引用 separator:在每个值之间添加字符串 open:在开头添加字符串 close:在结尾添加字符串
<where>标签,他能去掉前置后置逗号和and,还能在where中为空的时候,去掉这个where条件语句,而使用trim不行,他会在判断条件为空字符串的时候还会有where存在从而导致sql的报错
<set>标签,用于update语句,比trim跟简单,会自动去掉前后逗号和生成set字段
end~~~