发表于: 2019-12-10 22:01:51
1 1317
今天完成的事情:

service层调用dao层 也就是实现dao层(我这里是mapper)
在 controller层调用service层

为什么用service层:
service层有接口类和实现类, 用实现类去实现dao层
2.添加了一个增加选项
//get方法跳转表单
@RequestMapping(value = "/add", method = RequestMethod.GET)
public ModelAndView add() {
ModelAndView mv = new ModelAndView();
mv.setViewName("forpost");
return mv;
}
//表单提交后跳转到此处
@RequestMapping(value = "/addstudent", method = RequestMethod.POST)
public ModelAndView insertStudent(Student student) {
ss.insertStudent(student);
ModelAndView mv = new ModelAndView();
mv.setViewName("redirect:/student");
return mv;
}
不放在表格里了 因为每行后面都有一个增加的话 感觉怪怪的
3. 查看师兄日报 写了limit分页代码
照着代码一个一个搞清楚是干嘛的 并添加了注释
@RequestMapping(value = "/AllPage",method = RequestMethod.GET)
//传入 当前页数数据 初始(defaultValue)为1
public String AllPage (Model model , @RequestParam(value = "pageNow",defaultValue = "1")int pageNow){
// 第1个是从0起,查询10条数据即0-10 第2个是从10起,查询10个 即10-20
List<Student> students = ss.studentPage((pageNow-1)*10,10);
// 查询所有的页数
int allRow = ss.selectCount();
// 定义一个 上一页
int prePage;
// 如果当前页 减去1 大于 0 上一页等于当前页-1 (防止第一页再减一)
// 否则还是当前页
if (pageNow - 1 > 0) {
prePage = pageNow - 1;
} else {
prePage = pageNow;
}
// 定义一个 每页显示的条数 为10
int pageSize = 10;
// 最后一页 = 所有的条数 % 10 (求余数)
// 如果余数的值为0 所有的条数/10
// 如果余数的值不为0 所有的条数/10 再+1
int totalPages = allRow % pageSize == 0 ? allRow / pageSize : allRow / pageSize + 1;
//
// (假设总页数为23 则运行后跳到第3页, 因为23就在第3页(每页显示10个))
// 定义一个下一页
int nextPage;
// 如果当前页小于最终页 下一页 = 当前页+1 否则 下一页还等于当前页 (目的:到最后一页不动,返回当前页)
if ( pageNow <totalPages) {
nextPage = pageNow+1;
} else {
nextPage = pageNow ;
}
// 当前页
model.addAttribute("number", pageNow);
// 上一页
model.addAttribute("prePage", prePage);
// 查询到的 x条起 查询10条学生数据
model.addAttribute("students", students);
// 下一页
model.addAttribute("nextPage", nextPage);
// 最后一页
model.addAttribute("totalPages", totalPages);
return "allstudent";
}
}
添加了接口
sql语句
客户端通过传递start(页码),pageSize(每页显示的条数)两个参数去分页查询数据库表中的数据,
MySql数据库提供了分页的函数为 limit m,n
我们的函数不一样,则需要修改:
查询第1条到第10条的数据的sql是:select * from table limit 0,10; ->对应我们的需求就是查询第一页的数据:select * from table limit (1-1)*10,10;
查询第10条到第20条的数据的sql是:select * from table limit 10,10; ->对应我们的需求就是查询第二页的数据:select * from table limit (2-1)*10,10;
查询第20条到第30条的数据的sql是:select * from table limit 20,10; ->对应我们的需求就是查询第三页的数据:select * from table limit (3-1)*10,10;
MySQL中使用LIMIT进行分页的方法:
https://blog.csdn.net/qq_26599807/article/details/79240435
jsp页面
<td><a href="/student/AllPage?number=1">首页</a></td>
<td><a href="/student/AllPage?number=${prePage}">上一页</a></td>
<td><a href="/student/AllPage?number=${nextPage}">下一页</a></td>
<td><a href="/student/AllPage?number=${totalPages}">尾页</a></td>
<td>当前第${number}页</td>
<td>总共${totalPages}页</td>
<br>
<form action="/student/AllPage">
去<input type="text" name="number">页
<input type="submit" value="go">
</form>
主页面
测试了下
无论点哪个都是 这个页面 看来没写对..
跳转的页面逻辑有点混 没理清楚
明天计划的事情:
继续完成limit分页设计
也可以尝试下分页工具
问题:
分页还没写出来
评论