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情况如何使用命名参数?