Mybatis @Select in
要在Mybatis中使用in查询主要有三种方式:1.XML2.Mybatis-plus里的QueryWrapperqueryWrapper.lambda().in(ToolUtil.isNotEmpty(ids), User::getId, ids);3.@Select注解XML\color{red}{XML}XML的方式编写SQL从功能上来说是非常完备的,但是最大的缺点就是编写成
要在Mybatis中使用in查询主要有三种方式:
1.XML
2.Mybatis-plus里的QueryWrapper
queryWrapper.lambda().in(ToolUtil.isNotEmpty(ids), User::getId, ids);
3.@Select注解
X M L \color{red}{XML} XML的方式编写SQL从功能上来说是非常完备的,但是最大的缺点就是编写成本高,复杂, Q u e r y W r a p p e r \color{red}{QueryWrapper} QueryWrapper写SQL比较便捷,可以使用Lambda,但是对多表查询以及自定义返回值不太友好,个人比较偏好于使用 @ S e l e c t \color{red}{@Select} @Select注解的方式去编写查询SQL
最开始的时候自然而然是想到用这种方式去编写SQL,但是结果是没有生效的
@Select("SELECT id,name FROM user WHERE id IN #{ids}")
List<User> findByIds(List<Long> ids)
要在 @ S e l e c t \color{red}{@Select} @Select注解里面使用in查询需要有特定的语法和规则,有点类似XML的写法
@Select({"<script>",
" SELECT ",
" id, ",
" name ",
" FROM user WHERE id in ",
"<foreach item='item' index='index' collection='items' open='(' separator=',' close=')'>",
"#{item}",
"</foreach>",
"</script>"})
List<User> findByIds(@Param("items") List<String> userIds);
更多推荐
所有评论(0)