项目中的sql语句放到数据库去解析运行
比如一个代码块
select a.id AS msgId,a.*,b.name AS NickName,b.headImg AS HeadImg
<if test="fromA !=null and userId!=null">
,(SELECT COUNT(z.id) from
TM_count z where z.fromTo=3 and z.fromId=b.id and z.userId=${userId}) ASisFollow
</if>
from TM_MSG a
LEFT JSIN TM_USER b ON b.id=a.sendUserId
<where>
<if test="fromCommon != null">AND a.msgFromTo=5</if>
<if test="fromLike != null">AND a.msgFromTo=4</if>
<if test="fromFollow != null">AND a.msgFromTo=3</if>
<if test="userId != null">AND receiveUserId=${userId}</if>
</where>
order by a.createTime desc
前端这边呢给我们俩个参数,一个是 userId,一个是 fromFollow ,首先进行sql语句解析,我们首先将where中的判断多余的去除掉,因为数据库中不允许if where 的出现,所以拿到数据库中要把if where删掉,再判断 if中值是不是为空。