类似抖音的短视频管理系统+Java后端+vue前端(6)
完成查询功能
js
controller
mapper
2 dao层有一个搜索方法,和xml文件中写个搜索方法
一、实现点击按钮响应事件(mydata.js)
//实现点击搜索功能,点击按钮出现弹窗
//jquery点击事件
$("#re").click(function () {//#re 按钮的id
alert("111")
})
二、实现将输入框的值传送到后端
$("#re").click(function () {
var value = $("#videoLike").val() //输入框的id
alert(value)
})
三、通过ajax完成回调,得到后端反馈的值
//实现点击搜索功能
//jquery点击事件
$("#re").click(function () {
var value = $("#videoLike").val()
$.ajax({
type:"get",
url:"/video/search",
data:{
keyword:value
},//回调
success:function (res) {
//得到后端反馈的值
console.log(res)
}
})
})
虽然上面的方式可以实现返回对应的值,但是无法渲染到前端,所以
通过layui的方式重新对数据表格查询后渲染
给表格初始渲染一个放回值tableIns,将表格进行重载,需要添加一个tableIns值
//通过layui的方式对数据表格重新渲染
//tableIns 是上边 tableRender的返回值
tableIns.reload({
url:"/video/search",
where:{//设定异步数据接口的额外参数
keyword:value
},
page: {
curr:1 //重新重第一页开始
}
})
四、控制层Controller方法
@RequestMapping("/search")
@ResponseBody
public Result search(String keyword){
Result result = new Result();
System.out.println(keyword);
List<Video> videos = videoService.selectByUserId(keyword);
if (videos.size() > 0){
result.setMessage("ok");
result.setList(videos);
}else result.setMessage("error");
return result;
}
五、数据库连接层Mapper方法
mapper.java
//通过userId实现模糊查询
List<Video> selectByUserId(@Param("keyword") String keyword);
mapper.xml
<select id="selectByUserId" parameterType="java.lang.String" resultMap="BaseResultMap">
select id, user_id, audio_id, video_desc, video_path, video_seconds, video_width,
video_height, cover_path, like_counts, status, create_time
from videos
where user_id like concat('%',#{keyword,jdbcType=VARCHAR},'%')
</select>
六、业务层Service方法
service.java
List<Video> selectByUserId(String keyword);
serviceimpl.java
@Override
public List<Video> selectByUserId(String keyword) {
return videoMapper.selectByUserId(keyword);
}