1.仿照xml形式
方法:用script标签包围,然后像xml语法一样书写,适用于xml配置转换到注解配置
@Select("<script>"
+"select * from mi_taobao where 1=1"
+"<if test='status != null'>"
+"and status = #{status}"
+"</if>"
+"</script>")
public List<Taobao> getTaobao(@Param("status") Integer status);
2.Provider
@Mapper
public interface MybatisDao {
@SelectProvider(type = UserDaoProvider.class, method = "findUserById")
public List<User> findUserById(User user);
class UserDaoProvider {
public String findUserById(User user) {
String sql = "SELECT * FROM user";
if(user.getId()!=null){
sql += " where id = #{id}";
}
return sql;
}
}
3.new SQL()
https://mybatis.org/mybatis-3/zh/statement-builders.html
参考:
https://www.cnblogs.com/guoyafenghome/p/9123442.html
https://www.cnblogs.com/goloving/p/9241421.html