MySql 在命名参数的情况下,如何进行模糊查询?

SqlBuffer sql=new SqlBuffer();
    sql.append("select");
    sql.append("      A.UserId UserId");
    sql.append("      ,A.UserName UserName");
    sql.append("      ,A.LoginName LoginName");
    sql.append("      ,A.PassWord PassWord");
    sql.append("      ,A.Sex Sex");
    sql.append("      ,A.Birthday Birthday");
    sql.append("      ,A.Post Post");
    sql.append("      ,A.education education");
    sql.append("      ,A.Telephone Telephone");
    sql.append("      ,A.Mail Mail");
    sql.append("      ,A.Photo Photo");
    sql.append("      ,A.IsUsed IsUsed");
    sql.append("from");
    sql.append("      SysUser A");
    sql.append("where");
    sql.append("      (1=1)");
    if(sysUser!=null){
        if(!CommFunc.isEmpty(sysUser.getUserName())){
            sql.append("      and (A.UserName like CONCAT('%',:userName,'%'))");
        }
        if(!CommFunc.isEmpty(sysUser.getLoginName())){
            sql.append("      and (A.LoginName like CONCAT('%',:loginName,'%'))");
        }
    }

    return query(sql.toString(),sysUser,SysUser.class,page);

上面的是代码,我重写了query方法,会在执行查询语句过程中,通过传入的对象把对象中的属性值赋给SQL语句中的和属性名相同的参数。不用like的情况下是没有问题的,。但是类似于上面的like语句就出现似乎like中的:userName这个命名参数获取到的是空字符串。网上也查了一下,很多都是直接把参数值夹在SQL语句中。我想问一下,MySql中like情况如何使用命名参数?

https://zhidao.baidu.com/question/562290443.html

参加这篇文章。http://blog.csdn.net/xiazdong/article/details/6884218

上面两位的回复,总结起来就是mysql中不能用使用命名参数的方式直接替换为值,必须拼接后才能替换。
两位也许看过oracle的like用命名参数是怎么写的:
like ‘%’|| :userName ||‘%’;
我的意思就是想问,Mysql能不能实现这种直接用值替换命名参数,而不用先拼接好,再替换的方式。