@SelectProvider(type=xxxx.class,method=”xxxx”)
个人理解:
属性详解:
例1(单个参数):
mapper中
@SelectProvider(type=BaseUserProvider.class,method="selectUserById")
public BaseUser selectById(@Param(value="id")Integer id);
例1注意:
当mapper中传入的参数是使用@param 注解修饰,在xxxProvider类中必须使用Map对象接收参数。
BaseUserProvider类中
public String selectUserById(Map<String, Object> para){
return new sql(){{
SELECT("*");
FROM("base_user");
WHERE("id="+para.get("id"));
}}.toString();
}
此时:以上代码是借助org.apache.ibatis.jdbc.sql类 使用固定的select from where 格式,也可以直接使用return “select * from base_user where id =” +para.get(“id”); 来实现sql拼接
例2(多个参数并加入if判断):
public String selectUserById(Map<String, Object> para){
return new sql(){{
SELECT("*");
FROM("base_user");
WHERE("id="+para.get("id"));
if(StringUtils.isNotBlank((String)para.get("username"))){
WHERE("username="+para.get("username"));
}
}}.toString();
}
注意:
此时的sql写法在拼接sql中不需要在使用 and 进行连接 ,在where 方法中已拼入where 源码如下:
private static final String AND = ") \nAND (";
private static final String OR = ") \nor (";
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。