业务场景,在sql中进行字符串的拼接,当时写的sql在数据库中运行可以查到数据,因此没有考虑sql,问题,一直在考虑参数绑定的问题,
<select id="getProgramMenuDataList" resultType="com.iboyaa.synthetical.entity.dto.ProgramMenuDTO">
SELECT DISTINCT pm.id, pm.menuname ,c.value AS programtype ,u.username as operator,pm.createtime
,pm.modifytime,c1.value as statusname, s.name as servername ,
<!--<!–-CONCAT('/',t.serverid,'/',REPLACE(t.thumbsrc,'\\','/')) as thumbsrcName ->-->
CONCAT(CONCAT('/',t.serverid,'/',REPLACE(t.thumbsrc,'\\','/'))) as thumbsrcName
from
zs_program_menu_info pm
LEFT JOIN zs_program_menu_dtl pmd ON pmd.menuid = pm.id
LEFT JOIN zs_program_info p on p.id = pmd.programid
LEFT JOIN (SELECT code,VALUE from zs_code where type = '' )c ON c.code = pm.category
LEFT JOIN (SELECT code,VALUE from zs_code where type = '' )c1 ON c1.code = pm.status
LEFT JOIN ventuz_server_info s ON s.id = pm.serverid
-- LEFT JOIN (SELECT menuid,operator FROM zs_program_menu_log where type='') pmo ON pmo.menuid = p.id
LEFT JOIN ventuz_template_info t ON t.serverid = p.serverid and t.id = p.menuid
LEFT JOIN zs_user_info u on u.id = pm.operator
WHERE pm.isdel = 0
group by pm.id
order by pm.createtime desc
</select>
CONCAT(’/’,t.serverid,’/’,REPLACE(t.thumbsrc,’\’,’/’)) as thumbsrcName
这是SQL版,sql在拼接时只需要一个CONCAT
后来就想着是否为mybatis语法的原因,
在mybatis中,字符串拼接需要两个CONCAT
CONCAT(CONCAT(’/’,t.serverid,’/’,REPLACE(t.thumbsrc,’\’,’/’))) as thumbsrcName