Mybatis的@Select注解怎么在没有xml文件时使用in查询,
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Mybatis的@Select注解怎么在没有xml文件时使用in查询,相关的知识,希望对你有一定的参考价值。
不一定非要用in查询,一般情况用=就可以查询出需要的数据。追问你答非所问啊,我现在问的就是用in
追答你要用in直接用就是了啊,条件里面加上。
@Select("select * from t_sys_operation_log where id in #ids")
status in <foreach collection='includeStatus' item='status' open='(' separator=',' close=')'> #status </foreach> 参考技术B
@Select("select * from t_sys_operation_log where id in $ids")
String ids = "1,2,3";
mybatis中xml映射和方法注解两种配置sql语句的方式是不是可以同时存在
假如使用接口映射器的方式来执行sql语句,对于某个方法,是否允许添加注解和在对应的xml配置文件中配置sql语句两种方式同时存在,比如对于DBMapper接口的selectAll()方法,我既在该方法上添加了@Select("select * from db_param"),又在对应的xml配置文件中配置了<select id="kd">select * from db_param</select>,这样是否允许?如果这样配的话,系统会报错,还是会优先用一种方式替换另一种方式?我自己测试的时候,mapper元素的namespace属性和接口的完整路径名相同的时候,而且使用接口的方式执行sql语句,同时配置会提示错误,但是我看到某篇文章中讲到Configuration对象的addMappers(String path)方法扫描指定包路径下的接口并注册,同时扫描该路径下的mapper配置文件并解析。而且该方法除了解析mapper配置文件,还会解析路径下的接口的注解,同时注解的sql语句会覆盖mapper文件的sql语句。
我因此感到比较困惑,所以想请教mybatis对于同一个接口的同一个方法,是否允许注解和mapper配置两种方式同时存在?
在SqlMapConfig中有俩种配置分别为注解配置 和 xml文档配置
在我们为一个dao接口注册了俩种配置的时候,源码里会进行判断首先进行判断使用的哪种属性配置,如果俩种配置都写了将会抛出
Cause: org.apache.ibatis.binding.BindingException: Type interface IUserDao is already known to the MapperRegistry.
以上是关于Mybatis的@Select注解怎么在没有xml文件时使用in查询,的主要内容,如果未能解决你的问题,请参考以下文章
SpringBoot 快速整合Mybatis(去XML化+注解进阶)