需求:可以多选查询来查询符合的多个内容。
方案:前端向后台传递一个数组 ,利用 where project_id in (1,2,3.......)的方式来查询
问题:mapper向xml传递的时候由于<if>条件书写不正确导致拼写错误的sql语句导致bug
本来我的<if>是这样的:
<if test="ids!=null" > and project_daily.project_id in <foreach collection="ids" item="projectId" separator="," open="(" close=")"> #{projectId} </foreach> </if> GROUP BY project_daily.user_id
这样程序运行的时候,当我前端没有搜索project_id的时候sql将会出现:
where(project_daily.create_time between ? and ?)
and project_daily.project_id in
GROUP BY project_daily.user_id
这样的问题。
将<if>更改成:
<if test="ids.size()!=0" > </if>就拼写正确。
所以list=null 跟 ! list.isEmpty()是有区别的,我在百度搜索的时候发现这一段比较容易理解:
这就相当与你要要到商店买东西
-------------------------------------------------------------------------------------------
list!=null 首先判断是否有商店
!list.isEmpty() 没有判断商店是否存在,而是判断商店是否有东西
总结用法:如果连商店都没有,何来的的东西可卖
所以一般的判断是
if(list!=null && !list.isEmpty()){
//不为空的情况
}else{
//为空的情况
}
{{ cmt.username }}
{{ cmt.content }}
{{ cmt.commentDate | formatDate('YYYY.MM.DD hh:mm') }}