• 使用JdbcTemplate过程中使用到多个参数和like模糊


    项目中经常会用到模糊查询,最近使用JdbcTemplate过程中就遇到了。

    一开始尝试了拼接的方式去

    String sql = "select count(1) from web_users where status = ? and " +
                    "createtime >= ? and createtime <= ? and deleted = 0 and " +
                    "address like '%"+"?"+"%'";
            return getJdbcTemplate().queryForObject(sql, new Object[]{status,
                    new Timestamp(begintime), new Timestamp(endtime), address}, Integer.class);

    String sql = "select * from web_users where status = ? and " +
                    "createtime >= ? and createtime <= ? and deleted = 0 and " +
                    "address like ? limit ? offset ?";
            return getJdbcTemplate().query(sql, new Object[]{status, new Timestamp(begintime),
                    new Timestamp(endtime), "'%"+address+"'%", count, start}, new DaoRowMapper<>(User.class));

    以上两种方式都会报同样的错误。参数不正确。

    既然这两种方式通不行,尝试以下方式:

    List<Object> queryList = new ArrayList<>();
            if (!address.equals("")) {
                sql += " and address like ? ";
                queryList.add("%" + address + "%");
            }
            return getJdbcTemplate().query(sql, queryList.toArray(), new DaoRowMapper<>(User.class));

    哈哈哈,搞定!

  • 相关阅读:
    [bzoj1934][Shoi2007]Vote 善意的投票
    [bzoj1834][ZJOI2010]network 网络扩容
    [bzoj2127]happiness
    [bzoj3876][Ahoi2014]支线剧情
    [bzoj1927][Sdoi2010]星际竞速
    [bzoj3223]Tyvj 1729 文艺平衡树
    [bzoj3224]Tyvj 1728 普通平衡树
    FJOI2017 RP++
    [bzoj3529][Sdoi2014]数表
    异步ajax请求数据处理
  • 原文地址:https://www.cnblogs.com/zacky31/p/8745981.html
Copyright © 2020-2023  润新知