基于javaweb+mysql的医院挂号预约管理系统(管理员、用户)
运行环境
Java≥8、MySQL≥5.7、Tomcat≥8
开发工具
eclipse/idea/myeclipse/sts等均可配置运行
适用
课程设计,大作业,毕业设计,项目练习,学习演示等
功能说明
管理员:登录、管理员、医生、病人、预约挂号、科室管理
普通用户:注册、登录、预约挂号、挂号查询
普通用户(前台)
管理员(后台)
技术框架
CSS JavaScript JSP Servlet JDBC MySQL
import com.demo.util.DateUtil;
import com.demo.util.PageData;
import net.sf.json.JSONArray;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.swing.*;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
public class RegisterServlet extends HttpServlet {
private RegisterService registerService = new RegisterServiceImp();
private PatientService patientService = new PatientServiceImp();
private DoctorService doctorService = new DoctorServiceImp();
private OfficeService officeService = new OfficeServiceImp();
public RegisterServlet() {
super();
}
public void destroy() {
super.destroy(); // Just puts "destroy" string in log
su.setDeniedFilesList(denied);
// 单个文件最大限制
su.setMaxFileSize(file_size);
su.setCharset("UTF-8");
// 执行上传
su.upload();
// 得到单个上传文件的信息
file = su.getFiles().getFile(0);
String filepath = null;
if (!file.isMissing()) {
// 设置文件在服务器的保存位置
filepath = "image\\";
// 文件重新命名
String ext = file.getFileName().substring(
file.getFileName().lastIndexOf("."));
Date d = new Date();
filename = String.valueOf(d.getTime());
filename += Math.round(Math.random() * 1000000);
<option value="${page.currentPage}">第${page.currentPage}页</option>
<c:forEach begin="1" var="i" step="1" end="${page.pageCount}" >
<c:if test="${page.currentPage!=i}">
<option value="${i}">第${i }页</option>
</c:if>
</c:forEach>
</select>页
</td>
</tr>
</table>
</td>
</tr>
</table>
</td>
</tr>
</table>
<table width="95%" border="0" align="center" cellpadding="0"
cellspacing="0">
<tr>
<td height="6">
<img src="images/spacer.gif" width="1" height="1" />
html {
overflow-x: auto;
overflow-y: auto;
border: 0;
}
</style>
<script type="text/javascript">
function selectAll(){
var ch=document.getElementsByName("delid");
for(var i=0;i<ch.length;i++){
ch[i].checked=true;
}
}
function unselectAll(){
var ch=document.getElementsByName("delid");
for(var i=0;i<ch.length;i++){
ch[i].checked=!ch[i].checked;
}
}
}
} catch (SQLException e) {
e.printStackTrace();
}finally{
DBConnection.close(rs, stmt, pstmt);
}
return rowsCount;
}
public boolean modify(Admin admin) {
boolean b=true;
try {
conn=DBConnection.getConnection();
String sql="update admin set admin_name=?,admin_password=? where admin_id="+admin.getAdminId();
pstmt=conn.prepareStatement(sql);
pstmt.setString(1, admin.getAdminName());
pstmt.setString(2, admin.getAdminPassword());
throws ServletException, IOException {
// 单个删除
String offId = request.getParameter("offId");
// 多个删除
String strId = request.getParameter("strId");
boolean b = false;
boolean isHasDoc = false;
if (strId != null && !strId.trim().equals("")) {
String arrId[] = strId.split(","); // 将字符串分割成数组,得到所有复选框的value,即管理员id
for (int i = 0; i < arrId.length; i++) {
isHasDoc = isHasDoc(Integer.valueOf(arrId[i]), request,
response);
if (!isHasDoc) {
b = officeService.delete(Integer.valueOf(arrId[i]));
}
}
} else {
if (offId != null) {
isHasDoc = isHasDoc(Integer.valueOf(offId), request, response);
if (!isHasDoc) {
b = officeService.delete(Integer.valueOf(offId));
}
public class PatientServlet extends HttpServlet {
private PatientService patientService = new PatientServiceImp();
private RegisterService registerService = new RegisterServiceImp();
public PatientServlet() {
super();
}
public void destroy() {
super.destroy(); // Just puts "destroy" string in log
// Put your code here
}
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doPost(request, response);
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
<tr>
<td width="8%" align="center" bgcolor="#EEEEEE">
选择
</td>
<td width="12%" height="20" align="center"
bgcolor="#EEEEEE">
用户名
</td>
<td width="12%" align="center" bgcolor="#EEEEEE">
真实姓名
</td>
<td width="12%" align="center" bgcolor="#EEEEEE">
性别
</td>
b = adminService.delete(Integer.valueOf(adminId));
} else {
// 都为空的时候
JOptionPane.showMessageDialog(null, "您还没有选择删除的人");// 跳出去
showList(request, response);
return;
}
}
if (!b) {
request.setAttribute("errDelete", "删除管理员失败");
}
showList(request, response);
}
throws ServletException, IOException {
String docId = request.getParameter("docId");// 根据这个修改医生,
Doctor doctor = doctorService.get(Integer.valueOf(docId));
System.out.println(docId);
// 得到值,注意:页面不能有上传文件时所需要的enctype="multipart/form-data",否则得不到页面的值
String docName = request.getParameter("docName");
int money = Integer.valueOf(request.getParameter("money"));
String docTime = request.getParameter("docTime"); // 需要将其转化成sql里面的日期
int sumCount = Integer.valueOf(request.getParameter("sumCount"));
int offId = Integer.valueOf(request.getParameter("offId"));// 得到的就是offId
Date timeDate = DateUtil.getBirthDate(docTime);
// 更新得到的值
doctor.setDocName(docName);
doctor.setMoney(money);
doctor.setDocTime(timeDate);
doctor.setSumCount(sumCount);
doctor.setOffId(offId);
// 插入数据库
boolean b = doctorService.modify(doctor);
if (b) {
// 成功
// 跳转到列表,要更新
System.out.println("成功");
showList(request, response);
} else {
// 插入失败
System.out.println("失败");
PageData pageData = new PageData();
// 得到当前页
String currentPage = request.getParameter("currentPage");
if (currentPage != null) {
pageData.setCurrentPage(Integer.valueOf(currentPage));
}
// 得到每页行数
String pageRows = request.getParameter("pageRows");
if (pageRows != null) {
pageData.setPageRows(Integer.valueOf(pageRows));
}
// 得到总行数
int rowsCount = officeService.getRowsCount(null);
pageData.setRowsCount(rowsCount);
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<title>My JSP 'userlist.jsp' starting page</title>
<link rel="stylesheet" type="text/css" href="css/css.css">
<link href="css/style.css" rel="stylesheet" type="text/css" />
<style type="text/css">
// 显示医生列表
public void showList(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
// 模糊查询
String checkName = request.getParameter("checkName"); // 得到名字,根据姓名查找时用
// 分页
PageData pageData = new PageData();
// 得到当前页
String currentPage = request.getParameter("currentPage");
if (currentPage != null) {
pageData.setCurrentPage(Integer.valueOf(currentPage));
}
// 得到每页行数
String pageRows = request.getParameter("pageRows");
if (pageRows != null) {
pageData.setPageRows(Integer.valueOf(pageRows));
}
// 得到总行数
int rowsCount = doctorService.getRowsCount(checkName);
pageData.setRowsCount(rowsCount);
// 计算总页数
int pageCount = 0;
if (rowsCount % pageData.getPageRows() == 0) {
import com.demo.entity.Patient;
import com.demo.entity.Register;
import com.demo.service.DoctorService;
import com.demo.service.OfficeService;
import com.demo.service.PatientService;
import com.demo.service.RegisterService;
import com.demo.service.imp.DoctorServiceImp;
import com.demo.service.imp.OfficeServiceImp;
import com.demo.service.imp.PatientServiceImp;
import com.demo.service.imp.RegisterServiceImp;
import com.demo.util.DateUtil;
import com.demo.util.PageData;
import net.sf.json.JSONArray;
alert("您选的值必须大于0");
document.getElementById("pageRows").value=pages;
return false;
}
}
</script>
</head>
<body onload="init()">
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td height="30">
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td height="62" background="images/nav04.gif">
<table width="98%" border="0" align="center" cellpadding="0"
cellspacing="0">
<tr>
<td width="24">
<img src="images/ico07.gif" width="20" height="18" />
</td>
<td width="519">
<label>