基于javaweb的私人牙科诊所病历管理系统(java+jsp+css+javascript+mysql)
运行环境
Java≥8、MySQL≥5.7、Tomcat≥8
开发工具
eclipse/idea/myeclipse/sts等均可配置运行
适用
课程设计,大作业,毕业设计,项目练习,学习演示等
功能说明
基于javaweb+mysql的私人牙科诊所病历管理系统(java+JSP+CSS+JavaScript+Mysql)
项目介绍
本系统分为前后台,包括管理员、病人、挂号人员、收费人员、药房人员、医生人员等角色,其中前台只能由病人角色登录,其它角色可通过后台登录; 管理员角色包含以下功能: 登录页面,增加公告,公告管理,留言管理,增加用户,用户管理,增加科室,科室管理,药品管理,收费统计,挂号统计等功能。
病人角色包含以下功能: 注册账号,用户登录,用户登录后首页,预约挂号,个人信息修改,提交留言等功能。
环境需要
1.运行环境:最好是java jdk 1.8,我们在这个平台上运行的。其他版本理论上也可以。 2.IDE环境:IDEA,Eclipse,Myeclipse都可以。推荐IDEA; 3.tomcat环境:Tomcat 7.x,8.x,9.x版本均可 4.硬件环境:windows 7/8/10 1G内存以上;或者 Mac OS; 5.数据库:MySql 5.7版本; 6.是否Maven项目:否;
技术栈
1.后端技术:Servlet 2.前端技术:JSP+CSS+JavaScript
使用说明
- 使用Navicat或者其它工具,在mysql中创建对应名称的数据库,并导入项目的sql文件; 2. 使用IDEA/Eclipse/MyEclipse导入项目,Eclipse/MyEclipse导入时,若为maven项目请选择maven;若为maven项目,导入成功后请执行maven clean;maven install命令,然后运行; 3. 将项目中dbconnection.properties配置文件中的数据库配置改为自己的配置; 将项目中src/dao/CommDAO.java中第71行的数据库配置用户名密码改为自己的配置; 4. 运行项目,输入http://localhost:8080/srykzsblmis/ 登录 注:Tomcat中配置路径必须为srykzsblmis 管理员账号/密码:admin/123 病人账号/密码: xm/123 挂号人员账号/密码:gh/123 收费人员账号/密码:sf/123 药房人员账号/密码:yf/123 医生人员账号/密码:doctor1/123
医生管理控制层:
@Controller
@RequestMapping(“/doctor”)
public class DoctorHandler {
@Resource
DoctorService doctorService;
@RequestMapping(“/toDocWel”)
public String toCusWel(HttpSession session){
String userId = (String) session.getAttribute(“userId”);
if(userId.contains(“D”)){
return “doctor/doc_wel”;
}else {
return “redirect:/login/toDocLogin”;
@ResponseBody
@RequestMapping(“/delByDocId”)
public Integer delByDocId(String docId){
String img_path = “D:/eaducation/Dcms004/src/main/resources/static/img/doc/” + docId + “.bmp”;
File file = new File(img_path);
String resultInfo;
if (file.exists()) {//文件是否存在
if (file.delete()) {//存在就删了,返回1
resultInfo = “1”;
} else {
resultInfo = “0”;
} else {
resultInfo = “文件不存在!”;
System.out.println(“图片删除结果:” + resultInfo);
return doctorService.delById(docId);
@RequestMapping(“/toDocInfo”)
public ModelAndView toDocInfo(HttpSession session){
ModelAndView model = new ModelAndView();
String userId = (String) session.getAttribute(“userId”);
Doctor byId = doctorService.findById(userId);
model.addObject(“doc”,byId);
model.setViewName(“doctor/doc_info”);
return model;
@RequestMapping(“/toDocRePass”)
public String toRePass(){
return “doctor/doc_mess”;
/管理员模块/
@RequestMapping(“/adminToDocList”)
public String adminToDocList(){
return “admin/doctor/doc_list”;
@RequestMapping(“/adminToAdd”)
public String adminToAdd(){
return “admin/doctor/doc_add”;
@ResponseBody
@RequestMapping(“/adminFindAllDoc”)
public LayData adminFindAllDoc(Integer page, Integer limit){
return doctorService.findAll(page,limit);
/管理员模块/
@RequestMapping(“/toAddDoc”)
public String toAddDoc(){
return “admin/doctor/doc_add”;
@RequestMapping(“/toDocEdit”)
public ModelAndView toDocEdit(String docId){
ModelAndView model = new ModelAndView();
Doctor byId = doctorService.findById(docId);
model.addObject(“doctor”,byId);
model.setViewName(“admin/doctor/doc_edit”);
return model;
@ResponseBody
@RequestMapping(“/updateDoc”)
public Integer updateDoc(@RequestBody Doctor doctor){
return doctorService.updateDoc(doctor);
@ResponseBody
@RequestMapping(“/saveDoc”)
public Integer saveDoc(@RequestBody Doctor doctor){
return doctorService.saveDoc(doctor);
// 按ID搜索医生信息
@ResponseBody
@GetMapping(“/adminFindById”)
public LayData adminFindById(String docId){
LayData layData = new LayData();
layData.setCode(0);
if(docId != null && !docId.equals(“”)){
Doctor byId = doctorService.findById(docId);
if(byId != null) {
List list = new ArrayList<>();
list.add(byId);
layData.setData(list);
layData.setCount(1);
layData.setMsg(“按ID查询”);
return layData;
// 按Name搜索医生信息
@ResponseBody
@GetMapping(“/adminFindByName”)
public LayData adminFindByName(String docName){
LayData layData = new LayData();
layData.setCode(0);
List byName = doctorService.findByName(docName);
if(byName.size() > 0){
layData.setData(byName);
layData.setCount(byName.size());
layData.setMsg(“按Name查询”);
return layData;
@ResponseBody
@RequestMapping(“/fileUpload”)
public Map<String,Object> fileUpload(@RequestParam(“file”) MultipartFile file){
Map<String,Object> map = new HashMap<>();
String userId = doctorService.getDoctorId();
String uploadDir = “D:/eaducation/Dcms004/src/main/resources/static/img/doc/”;
try {
// 图片路径
String imgUrl = null;
//上传
String filename = doctorService.upload(file, uploadDir, Objects.requireNonNull(file.getOriginalFilename()), userId);
if (filename != null) {
imgUrl = new File(uploadDir).getName() + “/” + filename;
map.put(“code”,0);
map.put(“msg”,“”);
map.put(“data”,imgUrl);
return map;
} catch (Exception e) {
e.printStackTrace();
map.put(“code”,500);
map.put(“msg”,“上传失败”);
map.put(“data”,null);
return map;
登录管理控制层:
@RequestMapping(“/login”)
@Controller
public class LoginHandler {
@Resource
private LoginInfoRepository loginInfoRepository;
@Resource
private DoctorService doctorService;
@Resource
private CustomerService customerService;
@Resource
private LoginCountService loginCountService;
// ----------------------------客户登录模块—
@RequestMapping(“/toUserLogin”)
public String toUserLogin(HttpSession session){
String cusName = (String) session.getAttribute(“userName”);
String cusId = (String) session.getAttribute(“userId”);
Customer byId = customerService.findById(cusId);
if(cusName != null && cusId != null && byId != null){
return “redirect:/user/toCusInfo”;
}else {
return “user/login”;
@RequestMapping(“/toUserRegister”)
public String toUserRegister(){
return “user/cus_register”;
@RequestMapping(“/userLogin”)
public ModelAndView userLogin(LoginInfo loginInfo, HttpServletRequest req){
ModelAndView model = new ModelAndView();
HttpSession session = req.getSession();
LoginInfo byName = loginInfoRepository.findByName(loginInfo.getUsername());
if (byName == null){
model.setViewName(“forward:toUserLogin”);
model.addObject(“message”,“该用户未注册!”);
}else if(byName.getUserSort() != 1){
model.setViewName(“forward:toUserLogin”);
model.addObject(“message”,“该账号非客户!”);
} else if(loginInfo.getUsername().equals(byName.getUsername())
&& loginInfo.getPassword().equals(byName.getPassword())
&& byName.getUserSort() == 1){
model.setViewName(“redirect:/user/toCusInfo”);
session.setAttribute(“userName”,byName.getUsername());
session.setAttribute(“userId”,byName.getUserId());
}else {
model.setViewName(“forward:toUserLogin”);
model.addObject(“message”,“用户名或密码错误!”);
return model;
// ----------------------------医生登录模块-----
@RequestMapping(“/toDocLogin”)
public String toDocLogin(){
return “doctor/login”;
// 后台验证登录
@RequestMapping(“/docLogin”)
public ModelAndView docLogin(LoginInfo loginInfo, HttpServletRequest request){
ModelAndView model = new ModelAndView();
HttpSession session = request.getSession();
LoginInfo byName = loginInfoRepository.findByName(loginInfo.getUsername());
if (byName == null){
model.setViewName(“forward:toDocLogin”);
model.addObject(“message”,“该用户未注册!”);
}else if(loginInfo.getUsername().equals(byName.getUsername())
&& loginInfo.getPassword().equals(byName.getPassword())
&& byName.getUserSort() != 1){
if(byName.getUserSort() == 3){
model.setViewName(“redirect:/admin/toAdminWel”);
}else if(byName.getUserSort() == 2){
model.setViewName(“redirect:/doctor/toDocWel”);
session.setAttribute(“userName”,byName.getUsername());
session.setAttribute(“userId”,byName.getUserId());
}else {
model.setViewName(“forward:toDocLogin”);
model.addObject(“message”,“用户名或密码错误!”);
return model;
// 修改密码
@ResponseBody
@RequestMapping(“/updateDocMess”)
public Integer updateMess(@RequestBody LoginInfo loginInfo, HttpSession session){
String userId = (String) session.getAttribute(“userId”);
String userName = (String) session.getAttribute(“userName”);
LoginInfo byId = loginInfoRepository.findById(userId);
loginInfo.setUserId(userId);
loginInfo.setUsername(userName);
loginInfo.setUserSort(byId.getUserSort());
return loginInfoRepository.update(loginInfo);
/管理员模块/
@RequestMapping(“/toAdminRePass”)
public String toRePass(){
return “admin/admin_mess”;
@ResponseBody
@RequestMapping(“/findWeekData”)
public List findWeekData(){
return loginCountService.getWeekData();
// 通用退出
@RequestMapping(“/edit”)
public String edit(HttpSession session){
Enumeration em = session.getAttributeNames();
// 清除所有session数据,准备退出
while (em.hasMoreElements()) {
session.removeAttribute(em.nextElement());
System.out.println(“------------用户已注销-------------”);
return “redirect:/login/toDocLogin”;
// 通用获取密码
@ResponseBody
@RequestMapping(“/getPassword”)
public String getPassword(HttpSession session){
String userId = (String) session.getAttribute(“userId”);
LoginInfo byId = loginInfoRepository.findById(userId);
return byId.getPassword();
用户管理控制层:
@RequestMapping(“/cus”)
@Controller
public class CustomerHandler {
@Resource
private CustomerService customerService;
@RequestMapping(“/toCusList”)
public String toCusList(){
return “doctor/customer/cus_list”;
@RequestMapping(“/toAddCus”)
public String toAddCus(){
return “doctor/customer/cus_add”;
// 展示客户信息列表
@ResponseBody
@RequestMapping(“/findAllByDoc”)
public LayData getAll(HttpSession session){
String userId = (String) session.getAttribute(“userId”);
ModelAndView model = new ModelAndView();
LayData all = customerService.findAllByDoc(userId);
model.setViewName(“doctor/customer/cus_list”);
model.addObject(“cusList”, all);
return all;
// 按ID搜索客户信息
@ResponseBody
@GetMapping(“/findById”)
public LayData findById(String customerId, HttpSession session){
String userId = (String) session.getAttribute(“userId”);
LayData layData;
if(customerId == null || customerId.equals(“”)){
layData = customerService.findAllByDoc(userId);
}else {
layData = customerService.layFindById(customerId);
return layData;
// 按Name搜索客户信息
@ResponseBody
@GetMapping(“/findByName”)
public LayData findByName(String customerName, HttpSession session){
String userId = (String) session.getAttribute(“userId”);
LayData layData;
if(customerName == null || customerName.equals(“”)){
layData = customerService.findAllByDoc(userId);
}else {
layData = customerService.layFindByName(customerName);
return layData;
// 新增客户信息
@ResponseBody
@RequestMapping(“/insertCus”)
public Integer insertCus(@RequestBody Customer customer){
System.out.println(“insertCus中的Customer信息:” + customer);
int index = customerService.save(customer);
return index;
// 执行弹出窗的操作
@RequestMapping(“/toCusInfo”)
public ModelAndView toCusInfo(String customerId){
ModelAndView model = new ModelAndView();
model.setViewName(“admin/customer/cus_info”);
Customer customer = customerService.findById(customerId);
model.addObject(“cus”,customer);
return model;
/管理员模块/
@RequestMapping(“/adminToList”)
public String adminToList(){
return “admin/customer/cus_list”;
@RequestMapping(“/adminToAddCus”)
public String adminToAddCus(){
return “admin/customer/cus_add”;
// 展示客户信息列表 分页
@ResponseBody
@RequestMapping(“/adminFindAll”)
public LayData adminFindAll(Integer page,Integer limit){
return customerService.findAll(page,limit);
// 按ID搜索客户信息
@ResponseBody
@GetMapping(“/adminFindById”)
public LayData adminFindById(String customerId){
LayData layData;
if(customerId == null || customerId.equals(“”)){
layData = new LayData();
layData.setCode(0);
}else {
layData = customerService.layFindById(customerId);
return layData;
// 按Name搜索客户信息
@ResponseBody
@GetMapping(“/adminFindByName”)
public LayData adminFindByName(String customerName){
LayData layData;
if(customerName == null || customerName.equals(“”)){
layData = new LayData();
layData.setCode(0);
}else {
layData = customerService.layFindByName(customerName);
return layData;
// 按ID删除客户信息
@ResponseBody
@GetMapping(“/deleteById”)
public Integer deleteById(String customerId){
return customerService.deleteById(customerId);