一、数据准备
二、前端
三、后端
实体类:
servlet:
serviceImpl:
1、查询全部时:
2、模糊查询时:
daoImpl:
1、查询全部时:
2、模糊查询时
DROP TABLE IF EXISTS `t_student`;
CREATE TABLE `t_student` (
`id` int(0) NOT NULL AUTO_INCREMENT,
`name` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,
`sex` varchar(3) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,
`birthday` date NULL DEFAULT NULL,
`phone` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,
`address` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,
`hobby` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,
`pic` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 101 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = Dynamic;
-- ----------------------------
-- Records of t_student
-- ----------------------------
INSERT INTO `t_student` VALUES (9, '李逍垚', '男', '2022-01-29', '123', '郑州', 'coding', 'https://qf2201.oss-cn-beijing.aliyuncs.com/img/1650957654174.png');
INSERT INTO `t_student` VALUES (14, '刘洁', '女', '2022-03-14', '123', '郑州', 'coding', 'https://qf2201.oss-cn-beijing.aliyuncs.com/img/1651025986871.png');
INSERT INTO `t_student` VALUES (18, '张文桧', '男', '2022-01-13', '888', '郑州', '听音乐', 'https://qf2201.oss-cn-beijing.aliyuncs.com/img/1651114571498.png');
INSERT INTO `t_student` VALUES (19, '胡图图123', '男', '2022-03-14', '888', '郑州', '听音乐', 'https://qf2201.oss-cn-beijing.aliyuncs.com/img/1651114700812.png');
INSERT INTO `t_student` VALUES (25, '李孟阳', '女', '2022-01-14', '135', '郑州', 'playgame', '');
INSERT INTO `t_student` VALUES (32, '张飞', '男', '2022-03-15', '123', '郑州', 'eating', NULL);
INSERT INTO `t_student` VALUES (40, '海龙战神', '男', '2022-03-15', '111', '郑州', '貂蝉', NULL);
INSERT INTO `t_student` VALUES (45, '哦哦', '男', '2022-03-15', '123', '郑州', '郑州', NULL);
INSERT INTO `t_student` VALUES (55, '妲己222', '女', '2022-03-25', '123', '123', '123', NULL);
INSERT INTO `t_student` VALUES (66, '李垚', '男', '2022-04-24', '111', '222', '写代码', 'https://qf2201.oss-cn-beijing.aliyuncs.com/img/1650794347858.png');
INSERT INTO `t_student` VALUES (73, '骚琦', '男', '2022-07-20', '123', '郑州', '喊麦', 'https://java2207.oss-cn-hangzhou.aliyuncs.com/2207/saoqi.jpg');
INSERT INTO `t_student` VALUES (76, '晓雨3', '女', '2022-07-15', '123', '4567', 'play', 'https://java2207.oss-cn-hangzhou.aliyuncs.com/image/1658310400041.jpg');
INSERT INTO `t_student` VALUES (79, 'zs', '男', '2022-10-11', '123', '123', '123', '123');
INSERT INTO `t_student` VALUES (80, 'zszzzz', '男', '2022-10-11', '123', '123', '123', '123');
INSERT INTO `t_student` VALUES (81, '321', '保密', '2022-10-11', '2222', 'zz', '1232222', '123');
INSERT INTO `t_student` VALUES (82, 'afeng', '男', '2022-10-11', '123', '123', '111', 'https://java2212.oss-cn-hangzhou.aliyuncs.com/image/1665474350740.jpg');
INSERT INTO `t_student` VALUES (83, 'xiaomei', '女', '2022-10-12', '123', '123', '123', 'https://java2212.oss-cn-hangzhou.aliyuncs.com/image/1665474464939.jpg');
INSERT INTO `t_student` VALUES (84, '222', '保密', '2022-10-12', '222', '222', '222', '');
INSERT INTO `t_student` VALUES (85, '张三', '男', '1999-11-11', NULL, '222', 'coding', NULL);
INSERT INTO `t_student` VALUES (86, '李思思', '女', '1999-12-12', NULL, '222', 'coding', NULL);
INSERT INTO `t_student` VALUES (91, 'zs', '男', '0199-01-11', '11111', '1111', '111', NULL);
INSERT INTO `t_student` VALUES (92, 'ls', '女', '1999-01-10', '111', '郑州', 'coding', NULL);
INSERT INTO `t_student` VALUES (93, '啊啊啊啊', '男', '1999-01-12', '1111', '偃师', 'play', NULL);
INSERT INTO `t_student` VALUES (94, 'Lone Ranger', '男', '2111-01-10', '158922', '偃师', 'money', NULL);
INSERT INTO `t_student` VALUES (95, '111', '1', '1999-01-10', '111', '1111', '111', NULL);
INSERT INTO `t_student` VALUES (96, '11', '11', NULL, '', '', '', NULL);
INSERT INTO `t_student` VALUES (99, '张', '1', NULL, '1', '1', '1', NULL);
INSERT INTO `t_student` VALUES (100, '张', '2', NULL, '', '', '', NULL);
SET FOREIGN_KEY_CHECKS = 1;
<%-- 上面为模糊查询条件 --%>
编号
姓名
性别
生日
手机号
地址
爱好
头像
操作
${stu.id}
${stu.name}
${stu.sex}
<%-- ${stu.birthday}--%>
${stu.phone}
${stu.address}
${stu.hobby}
编辑
<%--
<%-- role="button">删除--%>
<%-- 分页 --%>
@Data
@AllArgsConstructor
@NoArgsConstructor
public class Page {
// 数据
private List pageDate;
// 页数
private Integer pageNum;
// 总页数
private Integer pageTotal;
// 总条数
private Integer totalRecord;
private Integer startPageNum;
private Integer endPageNum;
}
String num = request.getParameter("pageNum");
String s_name = request.getParameter("s_name");
String s_phone = request.getParameter("s_phone");
Integer pageNum = 1;
if (!StringUtils.isNullOrEmpty(num)) {
pageNum = Integer.parseInt(num);
}
StudentService studentService = new StudentServiceImpl1();
Page page = studentService.getPageData(pageNum,s_name,s_phone);
if (page != null) {
request.setAttribute("page", page);
request.getRequestDispatcher("/studentList.jsp").forward(request, response);
} else {
request.setAttribute("error", "查询出现错误");
request.getRequestDispatcher("/jsp/fault.jsp").forward(request, response);
}
@Override
public Page getPageData(Integer pageNum) {
Page studentPage = new Page();
studentPage.setPageNum(pageNum);
Integer pageSize = 5;
List pageData = studentDao.getPageData(pageNum, pageSize);
studentPage.setPageDate(pageData);
Integer totalRecord = studentDao.getTotalRecord();
studentPage.setTotalRecord(totalRecord);
Integer totalPageNum = totalRecord % pageSize == 0 ? (totalRecord / pageSize) : (totalRecord / pageSize) + 1;
studentPage.setPageTotal(totalPageNum);
Integer startPageNum = 1;
Integer endPageNum = 5;
if (pageNum - 2 > 1) {
startPageNum = pageNum - 2;
endPageNum = pageNum + 2;
}
if (pageNum + 2 > totalPageNum) {
startPageNum=totalPageNum-4;
endPageNum=totalPageNum;
}
if(totalPageNum<5){
startPageNum=1;
endPageNum=totalPageNum;
}
studentPage.setStartPageNum(startPageNum);
studentPage.setEndPageNum(endPageNum);
return studentPage;
}
@Override
public Page getPageData(Integer pageNum, String s_name, String s_phone) {
Page studentPage = new Page();
studentPage.setPageNum(pageNum);
Integer pageSize = 5;
List pageData = studentDao.getPageData(pageNum, pageSize,s_name,s_phone);
studentPage.setPageDate(pageData);
Integer totalRecord = studentDao.getTotalRecord(s_name,s_phone);
studentPage.setTotalRecord(totalRecord);
Integer totalPageNum = totalRecord % pageSize == 0 ? (totalRecord / pageSize) : (totalRecord / pageSize) + 1;
studentPage.setPageTotal(totalPageNum);
Integer startPageNum = 1;
Integer endPageNum = 5;
if (pageNum - 2 > 1) {
startPageNum = pageNum - 2;
endPageNum = pageNum + 2;
}
if (pageNum + 2 > totalPageNum) {
startPageNum=totalPageNum-4;
endPageNum=totalPageNum;
}
if(totalPageNum<5){
startPageNum=1;
endPageNum=totalPageNum;
}
studentPage.setStartPageNum(startPageNum);
studentPage.setEndPageNum(endPageNum);
return studentPage;
}
@Override
public List getPageData(Integer pageNum, Integer pageSize) {
String sql = "select * from t_student limit ?,?";
Integer start = (pageNum - 1) * pageSize;
List students = DBUtil.selectAll(sql, Student.class, start, pageSize);
return students;
}
@Override
public Integer getTotalRecord() {
List students = DBUtil.selectAll("select * from t_student", Student.class);
Integer totalRecord = students.size();
return totalRecord;
}
@Override
public List getPageData(Integer pageNum, Integer pageSize, String s_name, String s_phone) {
StringBuffer sb = new StringBuffer("select * from t_student ");
if (!StringUtils.isNullOrEmpty(s_name)) {
sb.append(" and name like '%" + s_name + "%'");
}
if (!StringUtils.isNullOrEmpty(s_phone)) {
sb.append(" and phone like '%" + s_phone + "%' ");
}
sb.append(" limit ?,?");
String sql = sb.toString().replaceFirst("and", "where");
Integer start = (pageNum - 1) * pageSize;
List students = DBUtil.selectAll(sql, Student.class,start, pageSize);
return students;
}
@Override
public Integer getTotalRecord(String s_name, String s_phone) {
StringBuffer sb = new StringBuffer("select * from t_student ");
if (!StringUtils.isNullOrEmpty(s_name)) {
sb.append(" and name like '%" + s_name + "%'");
}
if (!StringUtils.isNullOrEmpty(s_phone)) {
sb.append(" and phone like '%" + s_phone + "%' ");
}
String sql = sb.toString().replaceFirst("and", "where");
List students = DBUtil.selectAll(sql, Student.class);
Integer totalRecord = students.size();
return totalRecord;
}