springboot注解方式进行全表模糊查询,查询结果集为空。

1.本人小白一枚,在学习springboot的过程中做注解方式的全表模糊查询时,查询到的结果集始终为空,但把sql语句放到navicat里进行测试时却能正常的查找数据,恳请大佬解惑,十分感谢。

2.在各大网站查找很久,都没有得到解决办法

3.mapper方法
@Select("SELECT id,parent_name,title,content,publish_time FROM tb_article WHERE CONCAT(id,parent_name,title,content) LIKE #{params}")

public List<Article> selectParams(String params);

4.controller方法
@RequestMapping(value="/selectParam",method=RequestMethod.POST)

@ResponseBody
public List<Article> selectParam(@RequestParam String param){
    System.out.println(param);
    String params="'%"+param+"%'";
    System.out.println(params);
    if(params.equals("") || params==null) {
        return asi.selectArticleAll();
    }else {
        return asi.selectParams(params);
    }
}

5.navicat里的测试语句
SELECT id,parent_name,title,content,publish_time FROM tb_article WHERE CONCAT(id,parent_name,title,content) LIKE '%1%'

clipboard.png

6.postman测试结果

clipboard.png

7.恳请各位大佬解惑,十分感谢

阅读 5.8k
2 个回答

LIKE CONCAT('%', #{params},'%')

@ResponseBody
public List<Article> selectParam(@RequestParam String param){
    if(params !=null && !"".equals(params)) {
        return asi.selectParams(params);
    } else {
        return asi.selectArticleAll();
    }
}
@Select("SELECT id,parent_name,title,content,publish_time FROM tb_article WHERE CONCAT(id,parent_name,title,content) LIKE '#{params}'")

单引号换个位置试试

@ResponseBody
public List<Article> selectParam(@RequestParam String param){
    System.out.println(param);
    String params="%"+param+"%";
    System.out.println(params);
    if(params.equals("") || params==null) {
        return asi.selectArticleAll();
    }else {
        return asi.selectParams(params);
    }
}
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题