11.MyBatis-动态SQL-IF标签&WHERE标签

一、mybatis可以对sql语句进行一个判断,并且选择性的执行。
mybatis为我们提供了一个IF标签。
11.MyBatis-动态SQL-IF标签&WHERE标签

执行成功,查询出我们所需要的数据,并且获得mybatis内部拼接的sql语句:

SELECT `id`, `username`, `birthday`, `sex`, `address` FROM `user` WHERE username LIKE '%红%' and sex = ? 

但是这样会出现一个问题,例如我们传递进去的某一个参数为空呢?
这样就会报错,mybatis在拼接sql的时/
就会把后面的and sex = ? 拼接上去,就多出来一个 and 这是一个sql语句错误。
11.MyBatis-动态SQL-IF标签&WHERE标签

第一种、解决办法。11.MyBatis-动态SQL-IF标签&WHERE标签

第二种解决办法、使用mybatis提供的where标签来解决。
使用了where标签,不能自己再手动加上where关键字。
11.MyBatis-动态SQL-IF标签&WHERE标签