每周一语:因为淋过最大的雨,所以总想为别人撑伞。
模糊查询
经典案例:
Controller层
//根据歌名查询
@RequestMapping("/queryByNameMusic")
public String queryByNameMusic(String queryMusicName, Model model) {
Musics musics = (Musics) musicService.queryByNameMusic(queryMusicName);
List<Musics> list = new ArrayList<Musics>();
list.add(musics);
System.out.println(list);
if (musics ==null) {
list = musicService.queryAllMusic();
model.addAttribute("error", "没有查到啥东西!!!");
}
model.addAttribute("list", list);
return "allMusic.jsp";
Dao层
//根据歌名查询
Musics queryByNameMusic(String mcName);
impl层
//根据歌名模糊查询
@Override
public Musics queryByNameMusic(String mcName) {
return musicMapper.queryByNameMusic(mcName);
}
service层
//根据歌名模糊查询
Musics queryByNameMusic(String mcName);
Mapper层
<!-- 根据歌曲名字模糊查找-->
<select id="queryByNameMusic" resultType="Musics">
select *
from musics
where mcName = #{mcName};
</select>
- 输入查询名称,输出一个结果!
、
当数据增多时,会出现这个错
Expected one result (or null) to be returned by selectOne(), but found: 2
大概意思是,只能输出一个数据而你查到了多个数据。
、、
、、
- 完善后的模糊查询
Controller层
//根据歌名查询
@ApiOperation("模糊查询")
@GetMapping ("/queryByNameMusic")
public String queryByNameMusic(String queryMusicName, Model model) {
List<Musics> list=musicService.queryByNameMusic(queryMusicName);
System.out.println(list);
// if (list ==null) {
// list = musicService.queryAllMusic();
// model.addAttribute("error", "没有查到啥东西!!!");
// }
model.addAttribute("list", list);
return "allMusic.jsp";
}
Dao层
//根据歌名查询
List<Musics> queryByNameMusic(String mcName);
impl层
//根据歌名模糊查询
@Override
public List<Musics> queryByNameMusic(String mcName) {
return musicMapper.queryByNameMusic(mcName);
}
service层
//根据歌名模糊查询
List<Musics> queryByNameMusic(String mcName);
}
Mapper层
<select id="queryByNameMusic" resultType="Musics">
select * from musics where mcName like CONCAT('%',#{mcName},'%') ;
</select>
- 至此,较完善的模糊查询到此结束。
- 赶时间的话到此为止,有空了可以往下聊聊
*为什么会报这个错,为什么要这样该?
一:了解sql语句,sql语句的用法实在太多,例如本文中:
- select * from musics where mcName = #{mcName};
- select * from musics where mcName like CONCAT(’%’,#{mcName},’%’) ;
- 其实不需要太多的解释,看到效果你应该就明白了,主要还是记忆!
二:了解List的基本知识
- list中添加,获取,删除元素;
list中是否包含某个元素;
list中根据索引将元素数值改变(替换);
list中查看(判断)元素的索引;
根据元素索引位置进行的判断;
利用list中索引位置重新生成一个新的list(截取集合);
判断list是否为空;
返回Iterator集合对象;
将集合转换为字符串;
将集合转换为数组;
去重复; - 在实践中去认识它们
- ‘
- ’
- 其次,是controller处差别最大
List<Musics> list = new ArrayList<Musics>();
list.add(musics);
这就是错误的根源,我们从数据库中获取数据本就是一个List集合,我们继续封装可以看成把一个个数据进行单独处理(我大概是这样理解的,欢迎指正!)最后输出一个,但是作为用户这不是他们希望看到的
、、
、、
今年考的满意了
就和我正儿八经的畅聊一次把
高考加油!你这格格不入的家伙