controller层传入的参数是map,在mapper.xml中if test 语句怎么写?

问题描述:

1、controller层传入的参数是map,在mapper.xml中if test 语句怎么写?

这是详细的代码:
controller

dao

mapper

我直接取得值,但是查询的时候查询条件不起作用,想到参数是map,是根据key,value取值的,进行了修改,还是无法进行一个条件查询,所以大佬们看一看,给个建议,谢谢了

  1. 检查一下的参数名,确定是sql_filter,不是sqlFilter?
  2. status一般是整型,只需要写 "status != null"

不太理解题目表达的意思,controller传入map与mapper文件没什么关联。你DAO层传入给mapper才是最重要的,你想在if test里做检验,完权可以在service层处理map中的value然后再传给mapper做匹配。整型用interge,字符串用string,都用包装数据类型。

用的mybatis吧,这里可以给dao层的入参取一个别名List<Entity> list(@Param("别名") Map params),然后在你的xml里面这个别名就指代你的map,比如你要取“name”,就

<if test="别名.name != null and 别名.name != ‘’">
            and abc = #{别名.name}
</if>

这样就可以拿到。