基于三层实现学生信息管理系统3.0
上一版本:2.0
涉及知识点:mysql实现分页原理
优化内容:
1.前端优化:将显示所有学生内容以表格的形式显示,且显示学生数据的表格下有数据页操作按钮(首页,上一页,下一页,尾页)
2.后台代码的封装:DBUtil工具类实现通用的计算数据总数,在dao层实现查询sql分页后的对象集合。
先来一张结果图
应用实例:运用三层架构实现对学生信息得增删改查,且实现分页查询功能
项目目录结构图
1.需要用到的数据库与数据表:与2.0版本相同此处sql代码略过
2.导入数据库驱动包目录WebContent下的WEB-INF的lib文件夹中,选中改jar包:右键build path—>点击add build path
3.在WebContent目录下新建index,addstudent和updatestudent三个jsp页面
index.jsp
<%@page import="com.xiaochen.entity.SQLPage"%>
<%@page import="com.xiaochen.entity.Student"%>
<%@page import="java.util.List"%>
<%@ 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>
<%
/*
在分页显示的前提下:显示jsp需要的数据
当前页:currentPage
页面大小:pageSize
当前页的数据集合:students
总数据:totalCount
总页数:totalPage
*/
%>
<table border="1">
<!-- 表头内容 -->
<tr>
<td>学号</td>
<td>姓名</td>
<td>年龄</td>
<td>地址</td>
<td>操作</td>
</tr>
<%
//获取request域中的数据
SQLPage p= (SQLPage)request.getAttribute("p");
for(Student student:p.getStudents()){
%>
<tr>
<td><a href="QueryStudentBySnoServlet?sid=<%=student.getId() %>"><%=student.getId() %></a></td>
<td><%=student.getName() %></td>
<td><%=student.getAge() %></td>
<td><%=student.getAddress() %></td>
<td><a href="DeleteStudentServlet?sid=<%=student.getId() %>">删除</a></td>
</tr>
<%
}
%>
</table>
<a href="addstudent.jsp">新增</a><br>
<%
//若为首页只显示:下一页,尾页
if(p.getCurrentPage()==0){
%> <a href="QueryStudentByPageServlet?cPage=<%=p.getCurrentPage()+1 %>">下一页</a>
<a href="QueryStudentByPageServlet?cPage=<%=p.getTotalPage()%>">尾页</a>
<%
}
//若为中间页则显示:首页,上一页
else if(p.getCurrentPage()==p.getTotalPage()){
%>
<a href="QueryStudentByPageServlet?cPage=0">首页</a>
<a href="QueryStudentByPageServlet?cPage=<%=p.getCurrentPage()-1 %>">上一页</a>
<%
}
//若为中间页则显示全部:首页,上一页,下一页,尾页
else{
%>
<a href="QueryStudentByPageServlet?cPage=0">首页</a>
<a href="QueryStudentByPageServlet?cPage=<%=p.getCurrentPage()-1 %>">上一页</a>
<a href="QueryStudentByPageServlet?cPage=<%=p.getCurrentPage()+1 %>">下一页</a>
<a href="QueryStudentByPageServlet?cPage=<%=p.getTotalPage()%>">尾页</a>
<%
}
%>
<br>
<form action="QueryStudentByPageServlet" method="post">
每页显示
<select name="pSize">
<option value="5">5</option>
<option value="10">10</option>
<option value="15">15</option>
</select>
条数据
<input type="submit" value="提交">
</form>
</body>
</html>
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>
<!-- 将该表单数据传递到StudentServlet处理 -->
<form action="AddStudentServlet" method="post">
学号:<input type="text" name="sid"><br>
姓名:<input type="text" name="sname"><br>
年龄:<input type="text" name="sage"><br>
地址:<input type="text" name="saddress"><br>
<input type="submit" value="新增">
<a href="QueryStudentByPageServlet">返回</a>
</form>
</body>
</html>
updatestudent.jsp
<%@page import="com.xiaochen.entity.Student"%>
<%@ 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>
<bo