Controller
package com.oracle.controller;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.util.DigestUtils;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import com.oracle.entity.PageData;
import com.oracle.entity.Student;
import com.oracle.service.impl.StudentServiceImpl;
import com.sun.javafx.geom.transform.BaseTransform.Degree;
@Controller
public class StudentController {
@Autowired
StudentServiceImpl studentService;
//分页查询所有学生
@RequestMapping("/findAllStudentByPage/{currentPage}")
public String findAllStudentByPage(Model model,@PathVariable("currentPage") int currentPage) {
PageData<Student> data = studentService.findAllStudentByPage(currentPage, 5);
model.addAttribute("data",data);
return "studentList";
}
@RequestMapping("/toAddStudent")
public String toAddStudent() {
return "addStudent";
}
@RequestMapping("/addStudent")
public String addStudent(Model model,Student student) {
String md5Pwd = DigestUtils.md5DigestAsHex(student.getPwd().getBytes());
student.setPwd(md5Pwd);
int flag = studentService.addStudent(student);
String msg="增加失败";
if(flag==1) msg="增加成功";
model.addAttribute("msg",msg);
return "forward:findAllStudentByPage/1";
}
@RequestMapping("/toUpdateStudent")
public String toUpdateStudent(Model model,int id) {
model.addAttribute("id",id);
return "updateStudent";
}
@RequestMapping("/updateStudent")
public String updateStudent(Model model,Student student) {
String md5Pwd = DigestUtils.md5DigestAsHex(student.getPwd().getBytes());
student.setPwd(md5Pwd);
int flag = studentService.updateStudent(student);
String msg="修改失败";
if(flag==1) msg="修改成功";
model.addAttribute("msg",msg);
return "forward:findAllStudentByPage/1";
}
@RequestMapping("/deleteStudent")
public String deleteStudent(Model model,int id) {
int flag = studentService.deleteStudent(id);
String msg="删除失败";
if(flag==1) msg="删除成功";
model.addAttribute("msg",msg);
return "forward:findAllStudentByPage/1";
}
}
PageData
package com.oracle.entity;
import java.util.List;
public class PageData<T> {
private int currentPage;
private int pageSize;
private int totalPage;
private List<T> list;
public int getCurrentPage() {
return currentPage;
}
public void setCurrentPage(int currentPage) {
this.currentPage = currentPage;
}
public int getPageSize() {
return pageSize;
}
public void setPageSize(int pageSize) {
this.pageSize = pageSize;
}
public int getTotalPage() {
return totalPage;
}
public void setTotalPage(int totalPage) {
this.totalPage = totalPage;
}
public List<T> getList() {
return list;
}
public void setList(List<T> list) {
this.list = list;
}
}
StudentMapper.java
package com.oracle.mapper;
import java.util.List;
import org.apache.ibatis.annotations.Param;
import com.oracle.entity.Student;
public interface StudentMapper {
int findAllStudentCount();
List<Student> findAllStudentByPage(@Param("currentPage") int currerntPage,@Param("pageSize") int pageSize);
int addStudent(Student student);
int updateStudent(Student student);
int deleteStudent(int id);
}
StudentMapper.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.oracle.mapper.StudentMapper" >
<!-- 分页查询 -->
<select id="findAllStudentCount" resultType="int">
select count(1) from student
</select>
<select id="findAllStudentByPage" resultType="com.oracle.entity.Student">
select * from student limit #{currentPage},#{pageSize}
</select>
<insert id="addStudent" parameterType="com.oracle.entity.Student">
insert into student(id,name,pwd)
value(#{id},#{name},#{pwd})
</insert>
<update id="updateStudent" parameterType="com.oracle.entity.Student">
update student
set id=#{id}, name=#{name}, pwd=#{pwd}
where id=#{id}
</update>
<delete id="deleteStudent">
delete from student where id=#{id}
</delete>
</mapper>
StudentServiceImpl.java
package com.oracle.service.impl;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.oracle.entity.PageData;
import com.oracle.entity.Student;
import com.oracle.mapper.StudentMapper;
import com.oracle.service.StudentService;
@Service
public class StudentServiceImpl implements StudentService {
@Autowired
StudentMapper studentMapper;
@Override
public int findAllStudentCount() {
// TODO Auto-generated method stub
return studentMapper.findAllStudentCount();
}
@Override
public PageData<Student> findAllStudentByPage(int currentPage, int pageSize) {
// TODO Auto-generated method stub
PageData data=new PageData<Student>();
List<Student> list = studentMapper.findAllStudentByPage((currentPage-1)*pageSize, pageSize);
data.setList(list);
data.setCurrentPage(currentPage);
data.setPageSize(pageSize);
int total=(int)Math.ceil(1.0*studentMapper.findAllStudentCount()/pageSize);
data.setTotalPage(total);
return data;
}
@Override
public int addStudent(Student student) {
// TODO Auto-generated method stub
return studentMapper.addStudent(student);
}
@Override
public int updateStudent(Student student) {
// TODO Auto-generated method stub
return studentMapper.updateStudent(student);
}
@Override
public int deleteStudent(int id) {
// TODO Auto-generated method stub
return studentMapper.deleteStudent(id);
}
}
addStudent.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<div >
<h1>增加学生</h1>
<form action="${pageContext.request.contextPath }/addStudent">
id:<input id="id" name="id"><br/>
name:<input id="name" name="name"><br/>
pwd:<input id="pwd" name="pwd"><br/>
<input type="submit" value="提交">
</form>
</div>
</body>
</html>
studentList.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<div style="text-align:center">
<h1>学生列表</h1>
<h3 style="color: red">${msg }</h3>
<h3><a href="${pageContext.request.contextPath }/toAddStudent">增加学生</a></h3>
<table align="center" border="1">
<tr >
<td>学号</td>
<td>姓名</td>
<td>密码</td>
<td>操作</td>
<td>操作</td>
</tr>
<c:forEach items="${data.list }" var="student">
<tr>
<td>${student.id }</td>
<td>${student.name }</td>
<td>${student.pwd }</td>
<td><a href="${pageContext.request.contextPath }/toUpdateStudent?id=${student.id}">修改</a></td>
<td><a href="${pageContext.request.contextPath }/deleteStudent?id=${student.id}">删除</a></td>
</tr>
</c:forEach>
</table>
<c:if test="${data.currentPage>1}">
<a href="${pageContext.request.contextPath }/findAllStudentByPage/${data.currentPage-1}">上一页</a>
</c:if>
<c:if test="${data.currentPage<data.totalPage}">
<a href="${pageContext.request.contextPath }/findAllStudentByPage/${data.currentPage+1}">下一页</a>
</c:if>
</div>
</body>
</html>
updateStudent,jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<h1>修改学生</h1>
<form action="${pageContext.request.contextPath }/updateStudent">
id:<input id="id" name="id" value="${id }"><br/>
name:<input id="name" name="name"><br/>
pwd:<input id="pwd" name="pwd"><br/>
<input type="submit" value="提交">
</form>
</body>
</html>