发表于: 2019-12-10 22:01:51

1 1320


今天完成的事情:


1.  写了一个service层 


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

package service;
import java.util.List;
import mapper.StudentMapper;
import model.Student;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@Service
public class StudentService implements StudentMapper {
@Autowired
StudentMapper studentmapper;
public Student selectStudentId(long id){
return studentmapper.selectStudentId(id);
}
public Student selectStudentName(String name){
return studentmapper.selectStudentName(name);
}
public List<Student> selectStudent(){
return studentmapper.selectStudent();
}
public int insertStudent(Student student){
return studentmapper.insertStudent(student);
}
public boolean deleteStudentId(long id){
return studentmapper.deleteStudentId(id);
}
public boolean updateStudent(Student student){
return studentmapper.updateStudent(student);
}
}

 

在 controller层调用service层



为什么用service层:

service层有接口类和实现类, 用实现类去实现dao层

这样是为了以后写逻辑的时候再service层写,  也方便修改,接口上不能写逻辑。



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分页设计


也可以尝试下分页工具


问题:

分页还没写出来



返回列表 返回列表
评论

    分享到