1.动态不定增加
根据需求 , 动态的拼接SQL 。 用户有的信息是必须输入,但有的不是必须进行输入
比如在填写注册信息的时候,有时候密码是一定要填写的,而银行卡号不是必须填写的
1)注解方式
测试类中 :
使用 if 标签 可以实现动态 SQL
2)XML方式
XML文件中:
测试类中:
2.查询
此处使用 XML 方式实现动态查询
需求一般是需要根据特定的字段显示特定的内容
比如网上商城手机,选择256G内存 + 16G运行内存 显示的就是16+256配置的手机。如果什么也不选,那么就显示出来所有的手机列表。
这样写也可以 , 但是会出现问题 , 比如如果只使用 age 作为查询字段,那么 SQL 语句会变成 :
可以看出来前面多了个 and
可以使用 trim 进行去除
但是使用 where 更好
如果查询条件都为空 , where 标签会自动去除where关键字
3.修改
mysql 中修改的格式为 :
sql
update userinfo set a = ?,b= ?where c = ?
如果直接这样写,SQL 语句是这样的:
那么如何去除逗号, 可以使用 trim 标签
当然,推荐使用 set 标签
4.删除(批量)
注意 : for each 中 collection 参数的情况如下:
使用 id 进行批量删除
separator 是元素之间的分割
foreach 标签就是对应 in( ) 里面的内容
这里需要注意的就是
如果只有单个参数并且是 List , 那么collection 的 id 属性必须是list , 如果是其他 需要进行重命名
重命名的情况:
单元测试类中:
xml文件中:
不重命名 , 那么 collection 所对应的值 需要改为 list 因为单元测试类中使用的是 List
如果使用的是 String[ ] 之类的,就需要使用 array