citybug_csdn 2017-03-12 17:40 采纳率: 0%
浏览 2056

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

  • 写回答

3条回答 默认 最新

  • devmiao 2017-03-13 00:19
    关注
    评论

报告相同问题?

悬赏问题

  • ¥35 平滑拟合曲线该如何生成
  • ¥100 c语言,请帮蒟蒻写一个题的范例作参考
  • ¥15 名为“Product”的列已属于此 DataTable
  • ¥15 安卓adb backup备份应用数据失败
  • ¥15 eclipse运行项目时遇到的问题
  • ¥15 关于#c##的问题:最近需要用CAT工具Trados进行一些开发
  • ¥15 南大pa1 小游戏没有界面,并且报了如下错误,尝试过换显卡驱动,但是好像不行
  • ¥15 自己瞎改改,结果现在又运行不了了
  • ¥15 链式存储应该如何解决
  • ¥15 没有证书,nginx怎么反向代理到只能接受https的公网网站