场景
在使用mybatis中@select@update等注解进行操作是,如何使用foreach条件。
使用方法
使用script标签定义sql,如下:
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select;
import java.util.List;
@Mapper
public interface LizzMapper {
@Select({"<script> select id,name " +
" from t_lizz" +
" where id in" +
" <foreach collection=\"ids\" index=\"index\" item=\"item\" open=\"(\" separator=\",\" close=\")\">" +
" #{item}" +
" </foreach>" +
"</script>"})
List<Lizz> selectAllbyList(List<Integer> ids);
@Insert({"<script> insert into t_lizz(id,name)" +
" values" +
" <foreach collection=\"datas\" item=\"item\" separator=\",\" >" +
" (#{item.id},#{item.name})" +
" </foreach>" +
"</script>"})
insert selectAllbyList(List<Lizz> datas);
@Select({"<script> select id,name " +
" from t_lizz" +
" where id in" +
" <foreach collection=\"ids.split(',')\" index=\"index\" item=\"item\" open=\"(\" separator=\",\" close=\")\">" +
" #{item}" +
" </foreach>" +
"<if test='state != null'>" +
" and state= #{state} " +
"</if> " +
"</script>"})
List<AlertRule> selectAllByString(String ids,Integer state);
@Select({"<script> select id,name " +
" from t_lizz" +
" where " +
" <choose> "+
" <when test='state != null and state!=0 '>" +
" and state= #{state} " +
" </when> " +
" <otherwise>" +
" and state= 0 " +
" </otherwise> " +
" </choose> "+
"</script>"})
List<AlertRule> selectAllByString(String ids,Integer state);
}