自己在做的时候,经常出现模糊查询不行,改了一个晚上,发现还是不行,回头几天再去做,突然又可以了。
根据name模糊查询数据
Inteface
public List<Scenery> findScenery(String sceneryname);
Mapper
<select id="findScenery" resultType="Scenery" >
select * from t_scenery where sceneryname like concat ('%',#{sceneryname},'%')
</select>
Controller
@RequestMapping("findScenery")
public ModelAndView findScenery(
@RequestParam(value="sceneryname",required=false)String sceneryname) throws UnsupportedEncodingException{
ModelAndView mav = new ModelAndView();
List<Scenery> sc = sceneryService.findScenery(sceneryname);
mav.addObject("sc", sc);
mav.setViewName("showScenery");
return mav;
}
进去的页面上面都没有,没有判空,添加判空。
Controller
@RequestMapping("findScenery")
public ModelAndView findScenery(
@RequestParam(value="sceneryname",required=false)String sceneryname) throws UnsupportedEncodingException{
ModelAndView mav = new ModelAndView();
if(sceneryname!= null){
sceneryname = new String(sceneryname.getBytes("ISO8859_1"), "UTF-8");
List<Scenery> sc = sceneryService.findScenery(sceneryname);
mav.addObject("sc", sc);
mav.setViewName("showScenery");
return mav;
}else{
mav.setViewName("findScenery");
return mav;
}
}
进行查询,发现乱码,将sceneryname改为UTF-8
@RequestMapping("findScenery")
public ModelAndView findScenery(
@RequestParam(value="sceneryname",required=false)String sceneryname) throws UnsupportedEncodingException{
ModelAndView mav = new ModelAndView();
if(sceneryname!= null){
sceneryname = new String(sceneryname.getBytes("ISO8859_1"), "UTF-8");
List<Scenery> sc = sceneryService.findScenery(sceneryname);
mav.addObject("sc", sc);
mav.setViewName("showScenery");
return mav;
}else{
mav.setViewName("findScenery");
return mav;
}
}
查询“山”,出现了2行记录