如dao方法有:
void batchInsert(List userList);
List getUsersByIds(List idList);
void deleteUsersByids(List idList);
我想若输入参数为空(list.isEmpty()),就不要往下执行sql了,直接返回.否则的话会有错误sql出现,如:
mysql> select * from user where id in () ;
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ')' at line 1
跟踪源码发现,可以在SqlSesisonTemplate(org.mybatis.spring.SqlSesisonTemplate)中进行处理,如selectList,可以添加如下的逻辑:
if(parameter instanceof List){
if(((List) parameter).isEmpty()){
List result = new ArrayList<>();
return result;
}
}
但是需要在其他方法中(如insert update delete) 都需要加入差不多的逻辑.
不知除了这一处理方式外,还有没其他更好的方法?