文章目录
- 单条件 动态sql查询
- 写测试方法
- 疑问
- 总结
单条件 动态sql查询
<select id="selectByConditionBySingle" resultMap="brandResultMap">.
select *
from tb_brand
where
<choose>/*相当于switch*/
<when test="status != null">/*相当于case*/
status = #{status}
</when>
<otherwise>/*相当于default*/
1=1
</otherwise>
</choose>
choose报错是因为加注释
写测试方法
疑问
我不懂为什么 我都没有传status,按理说应该是都能查询到,不知道为什么查询到的还是 一条,就是还是把status传进去了。应该还是sql语句的问题
有人说把status 的类型改为INteger,但是我改了 还是不对,可能没改对
我知道了,是我没写单元测试,@Test。导致一致运行的根本就不是这个方法
总结
where 要写 otherwise
<where 标签不用写otherwise也不会报错