使用注解的方式并且使用SQLProvider的方式做查询操作出错
直接使用注解是可以的,但是用SQLProvider就不行。
// 这样是可以的
@Select({
"
+ "SELECT avator FROM t_user "
+ "WHERE id IN "
+ ""
+ "#{item}"
+ ""
+ ""
})
List getAvator(List userIds);
尝试了下边两种都不行
// 接口
@SelectProvider(type = UserSql.class, method = "getAvator2")
List getAvator2(@Param("list")List userIds);
@SelectProvider(type = UserSql.class, method = "getAvator3")
List getAvator3(String userIds); // 传进去 4,5,6,7 这样的字符串
// SQL
public String getAvator2(List userIds) {
StringBuilder sql = new StringBuilder()
.append("SELECT avator FROM ")
.append(TABLE_NAME)
.append(" ")
.append(" #{item}")
.append(" ");
return sql.toString();
}
public String getAvator3(String userIds) {
StringBuilder sql = new StringBuilder()
.append("SELECT avator FROM ")
.append(TABLE_NAME)
.append(" WHERE id IN (#{userIds})");
return sql.toString();
}