Mybatis 注解开发传入List 两种方式接收方式 在IN场景中

Posted 刘百会

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Mybatis 注解开发传入List 两种方式接收方式 在IN场景中相关的知识,希望对你有一定的参考价值。

1.在@Select中

@Select("<script>"
              + "SELECT IDFA FROM t_xxx WHERE IDFA IN "
              + "<foreach item=\'item\' index=\'index\' collection=\'strList\' open=\'(\' separator=\',\' close=\')\'>"
                  + "#{item}"
              + "</foreach>"
          + "</script>")
    @Results(value = { @Result(column = "user_name", property = "username") })
    public List<String> getXxxList(@Param("strList") List<String> strList);

说明:上述方式其实是一种注解完全代替xml的方法。

其中的foreach的collection直接写成@param中的值即可。

摘自:https://www.cnblogs.com/java-zhao/p/5489269.html

2.将入参进行封装,成(**,**,**,**,)

@Select("select access_pat_id from emr3.gp_doc_patients where access_pat_id in (#{apis}) and admission_time = (select max(admission_time) from emr3.gp_doc_patients where access_pat_id in (#{apis}))")
String getMaxTime(@Param("apis")String apis);
public static String indexForm(List<String> s){
String content="";
int i=0;
for (String ss:s){
i++;
if (i==s.size()){
content+=ss;
}else {
content+=ss+",";
}
}
return content;
}
该方法返回值就是入参apis

以上是关于Mybatis 注解开发传入List 两种方式接收方式 在IN场景中的主要内容,如果未能解决你的问题,请参考以下文章

简述MyBatis的体系结构

Java之MyBatis 批量插入数据,两种方式(注解,XML)

Java之MyBatis 批量插入数据,两种方式(注解,XML)

mybatis中怎么传参数可以提高查询效率

mybatis sql in 查询(mybatis sql语句传入参数是list)mybatis中使用in查询时in怎么接收值

mybatis仅传入一个String类型参数报错