Java毕业设计实战之医院心理咨询问诊系统的实现
一、项目运行
环境配置:
Jdk1.8 + Tomcat8.5 + Mysql + HBuilderX(Webstorm也行)+ Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。
项目技术:
Spring + SpringMvc + mybatis + Maven + Vue 等等组成,B/S模式 + Maven管理等等。
文章图片
文章图片
文章图片
文章图片
文章图片
系统控制器:
/** * 系统控制器 * @author yy * */@RequestMapping("/system")@Controllerpublic class SystemController { @Autowiredprivate OrderAuthService orderAuthService; @Autowiredprivate OperaterLogService operaterLogService; @Autowiredprivate UserService userService; @Autowiredprivate DatabaseBakService databaseBakService; @Autowiredprivate OrderReceivingService orderReceivingService; @Value("${show.tips.text}")private String showTipsText; @Value("${show.tips.url.text}")private String showTipsUrlText; @Value("${show.tips.btn.text}")private String showTipsBtnText; @Value("${show.tips.url}")private String showTipsUtl; private Logger log = LoggerFactory.getLogger(SystemController.class); /*** 登录页面* @param model* @param model* @return*/@RequestMapping(value="https://www.it610.com/login",method=RequestMethod.GET)public String login(Model model){return "admin/system/login"; } /*** 用户登录提交表单处理方法* @param request* @param user* @param cpacha* @return*/@RequestMapping(value="https://www.it610.com/login",method=RequestMethod.POST)@ResponseBodypublic Resultlogin(HttpServletRequest request,User user,String cpacha){if(user == null){return Result.error(CodeMsg.DATA_ERROR); }//用统一验证实体方法验证是否合法CodeMsg validate = ValidateEntityUtil.validate(user); if(validate.getCode() != CodeMsg.SUCCESS.getCode()){return Result.error(validate); }//表示实体信息合法,开始验证验证码是否为空if(StringUtils.isEmpty(cpacha)){return Result.error(CodeMsg.CPACHA_EMPTY); }//说明验证码不为空,从session里获取验证码Object attribute = request.getSession().getAttribute("admin_login"); if(attribute == null){return Result.error(CodeMsg.SESSION_EXPIRED); }//表示session未失效,进一步判断用户填写的验证码是否正确if(!cpacha.equalsIgnoreCase(attribute.toString())){return Result.error(CodeMsg.CPACHA_ERROR); }//表示验证码正确,开始查询数据库,检验密码是否正确User findByUsername = userService.findByUsername(user.getUsername()); //判断是否为空if(findByUsername == null){return Result.error(CodeMsg.ADMIN_USERNAME_NO_EXIST); }//表示用户存在,进一步对比密码是否正确if(!findByUsername.getPassword().equals(user.getPassword())){return Result.error(CodeMsg.ADMIN_PASSWORD_ERROR); }//表示密码正确,接下来判断用户状态是否可用if(findByUsername.getStatus() == User.ADMIN_USER_STATUS_UNABLE){return Result.error(CodeMsg.ADMIN_USER_UNABLE); }//检查用户所属角色状态是否可用if(findByUsername.getRole() == null || findByUsername.getRole().getStatus() == Role.ADMIN_ROLE_STATUS_UNABLE){return Result.error(CodeMsg.ADMIN_USER_ROLE_UNABLE); }//检查用户所属角色的权限是否存在if(findByUsername.getRole().getAuthorities() == null || findByUsername.getRole().getAuthorities().size() == 0){return Result.error(CodeMsg.ADMIN_USER_ROLE_AUTHORITES_EMPTY); }//检查一切符合,可以登录,将用户信息存放至sessionrequest.getSession().setAttribute(SessionConstant.SESSION_USER_LOGIN_KEY, findByUsername); //销毁session中的验证码request.getSession().setAttribute("admin_login", null); //将登陆记录写入日志库operaterLogService.add("用户【"+user.getUsername()+"】于【" + StringUtil.getFormatterDate(new Date(), "yyyy-MM-dd HH:mm:ss") + "】登录系统!"); log.info("用户成功登录,user = " + findByUsername); return Result.success(true); } /*** 登录成功后的系统主页* @param model* @return*/@RequestMapping(value="https://www.it610.com/index")public String index(Model model){model.addAttribute("operatorLogs", operaterLogService.findLastestLog(10)); model.addAttribute("userTotal", userService.total()); model.addAttribute("operatorLogTotal", operaterLogService.total()); model.addAttribute("databaseBackupTotal", databaseBakService.total()); model.addAttribute("onlineUserTotal", SessionListener.onlineUserCount); model.addAttribute("orderReceivings", orderReceivingService.findOrderReceivingDesc()); model.addAttribute("showTipsText", showTipsText); model.addAttribute("showTipsUrlText", showTipsUrlText); model.addAttribute("showTipsUtl", showTipsUtl); model.addAttribute("showTipsBtnText", showTipsBtnText); return "admin/system/index"; } /*** 注销登录* @return*/@RequestMapping(value="https://www.it610.com/logout")public String logout(){User loginedUser = SessionUtil.getLoginedUser(); if(loginedUser != null){SessionUtil.set(SessionConstant.SESSION_USER_LOGIN_KEY, null); }return "redirect:login"; } /*** 无权限提示页面* @return*/@RequestMapping(value="https://www.it610.com/no_right")public String noRight(){return "admin/system/no_right"; } /*** 修改用户个人信息* @return*/@RequestMapping(value="https://www.it610.com/update_userinfo",method=RequestMethod.GET)public String updateUserInfo(){return "admin/system/update_userinfo"; } /*** 修改个人信息保存* @param user* @return*/@RequestMapping(value="https://www.it610.com/update_userinfo",method=RequestMethod.POST)@ResponseBodypublic Result updateUserInfo(User user) throws Exception {User loginedUser = SessionUtil.getLoginedUser(); loginedUser.setId(user.getId()); if(user.getEmail() == null){Result.error(CodeMsg.ADMIN_PUBLIC_EMAIL); }loginedUser.setEmail(user.getEmail()); if(user.getMobile() == null){Result.error(CodeMsg.ADMIN_PUBLIC_MOBILE); }loginedUser.setMobile(user.getMobile()); loginedUser.setHeadPic(user.getHeadPic()); int age = DateUtil.getAge(user.getBirthDay()); if (age < 0) {Result.error(CodeMsg.ADMIN_PUBLIC_AGE); }loginedUser.setAge(age); loginedUser.setBirthDay(user.getBirthDay()); if(user.getName() == null){Result.error(CodeMsg.ADMIN_PUBLIC_NAME); }loginedUser.setName(user.getName()); //首先保存到数据库userService.save(loginedUser); //更新session里的值SessionUtil.set(SessionConstant.SESSION_USER_LOGIN_KEY, loginedUser); return Result.success(true); } /*** 修改密码页面* @return*/@RequestMapping(value="https://www.it610.com/update_pwd",method=RequestMethod.GET)public String updatePwd(){return "admin/system/update_pwd"; } /*** 修改密码表单提交* @param oldPwd* @param newPwd* @return*/@RequestMapping(value="https://www.it610.com/update_pwd",method=RequestMethod.POST)@ResponseBodypublic Result updatePwd(@RequestParam(name="oldPwd",required=true)String oldPwd,@RequestParam(name="newPwd",required=true)String newPwd){User loginedUser = SessionUtil.getLoginedUser(); if(!loginedUser.getPassword().equals(oldPwd)){return Result.error(CodeMsg.ADMIN_USER_UPDATE_PWD_ERROR); }if(StringUtils.isEmpty(newPwd)){return Result.error(CodeMsg.ADMIN_USER_UPDATE_PWD_EMPTY); }loginedUser.setPassword(newPwd); //保存数据库userService.save(loginedUser); //更新sessionSessionUtil.set(SessionConstant.SESSION_USER_LOGIN_KEY, loginedUser); return Result.success(true); } /*** 日志管理列表* @param model* @param operaterLog* @param pageBean* @return*/@RequestMapping(value="https://www.it610.com/operator_log_list")public String operatorLogList(Model model,OperaterLog operaterLog,PageBean pageBean){model.addAttribute("pageBean", operaterLogService.findList(operaterLog, pageBean)); model.addAttribute("operator", operaterLog.getOperator()); model.addAttribute("title", "日志列表"); return "admin/system/operator_log_list"; } /*** 删除操作日志,可删除多个* @param ids* @return*/@RequestMapping(value="https://www.it610.com/delete_operator_log",method=RequestMethod.POST)@ResponseBodypublic Result delete(String ids){if(!StringUtils.isEmpty(ids)){String[] splitIds = ids.split(","); for(String id : splitIds){operaterLogService.delete(Long.valueOf(id)); }}return Result.success(true); } /*** 验证订单* @param orderSn* @param phone* @return*/@RequestMapping(value="https://www.it610.com/auth_order",method=RequestMethod.POST)@ResponseBodypublic Result authOrder(@RequestParam(name="orderSn",required=true)String orderSn,@RequestParam(name="phone",required=true)String phone){OrderAuth orderAuth = new OrderAuth(); orderAuth.setMac(StringUtil.getMac()); orderAuth.setOrderSn(orderSn); orderAuth.setPhone(phone); orderAuthService.save(orderAuth); AppConfig.ORDER_AUTH = 1; return Result.success(true); } /*** 清空整个日志* @return*/@RequestMapping(value="https://www.it610.com/delete_all_operator_log",method=RequestMethod.POST)@ResponseBodypublic Result deleteAll(){operaterLogService.deleteAll(); return Result.success(true); }}
后台角色管理控制器:
/** * 后台角色管理控制器 * @author yy * */@RequestMapping("/role")@Controllerpublic class RoleController { private Logger log = LoggerFactory.getLogger(RoleController.class); @Autowired private MenuService menuService; @Autowired private OperaterLogService operaterLogService; @Autowired private RoleService roleService; /*** 分页搜索角色列表* @param model* @param role* @param pageBean* @return*/ @RequestMapping(value="https://www.it610.com/list") public String list(Model model,Role role,PageBeanpageBean){model.addAttribute("title", "角色列表"); model.addAttribute("name", role.getName()); model.addAttribute("pageBean", roleService.findByName(role, pageBean)); return "admin/role/list"; } /*** 角色添加页面* @param model* @return*/ @RequestMapping(value="https://www.it610.com/add",method=RequestMethod.GET) public String add(Model model){List
后台用户管理控制器:
/** * 后台用户管理控制器 * @author yy * */@RequestMapping("/user")@Controllerpublic class UserController { @Autowired private UserService userService; @Autowired private RoleService roleService; @Autowired private OperaterLogService operaterLogService; /*** 用户列表页面* @param model* @param user* @param pageBean* @return*/ @RequestMapping(value="https://www.it610.com/list") public String list(Model model,User user,PageBeanpageBean){model.addAttribute("title", "用户列表"); model.addAttribute("username", user.getUsername()); model.addAttribute("pageBean", userService.findList(user, pageBean)); return "admin/user/list"; } /*** 新增用户页面* @param model* @return*/ @RequestMapping(value="https://www.it610.com/add",method=RequestMethod.GET) public String add(Model model){model.addAttribute("roles", roleService.findSome()); return "admin/user/add"; } /*** 用户添加表单提交处理* @param user* @return*/ @RequestMapping(value="https://www.it610.com/add",method=RequestMethod.POST) @ResponseBody public Result add(User user){//用统一验证实体方法验证是否合法CodeMsg validate = ValidateEntityUtil.validate(user); if(validate.getCode() != CodeMsg.SUCCESS.getCode()){return Result.error(validate); }if(user.getRole() == null || user.getRole().getId() == null){return Result.error(CodeMsg.ADMIN_USER_ROLE_EMPTY); }//判断用户名是否存在if(userService.isExistUsername(user.getUsername(), 0l)){return Result.error(CodeMsg.ADMIN_USERNAME_EXIST); } int age = DateUtil.getAge(user.getBirthDay()); if (age < 0) {returnResult.error(CodeMsg.ADMIN_PUBLIC_AGE); }user.setAge(age); //到这说明一切符合条件,进行数据库新增if(userService.save(user) == null){return Result.error(CodeMsg.ADMIN_USE_ADD_ERROR); }operaterLogService.add("添加用户,用户名:" + user.getUsername()); return Result.success(true); } /*** 用户编辑页面* @param model* @return*/ @RequestMapping(value="https://www.it610.com/edit",method=RequestMethod.GET) public String edit(Model model,@RequestParam(name="id",required=true)Long id){model.addAttribute("roles", roleService.findSome()); model.addAttribute("user", userService.find(id)); return "admin/user/edit"; } /*** 编辑用户信息表单提交处理* @param user* @return*/ @RequestMapping(value="https://www.it610.com/edit",method=RequestMethod.POST) @ResponseBody public Result edit(User user){//用统一验证实体方法验证是否合法CodeMsg validate = ValidateEntityUtil.validate(user); if(validate.getCode() != CodeMsg.SUCCESS.getCode()){return Result.error(validate); }if(user.getRole() == null || user.getRole().getId() == null){return Result.error(CodeMsg.ADMIN_USER_ROLE_EMPTY_EDIT); }if(user.getRole().getId() == Doctor.DOCTOR_ROLE_ID || user.getRole().getId() == Patient.PATIENT_ROLE_ID){return Result.error(CodeMsg.ADMIN_USER_ROLE_CANNOT_CHANGE); }if(user.getId() == null || user.getId().longValue() <= 0){return Result.error(CodeMsg.ADMIN_USE_NO_EXIST); }if(userService.isExistUsername(user.getUsername(), user.getId())){return Result.error(CodeMsg.ADMIN_USERNAME_EXIST); }//到这说明一切符合条件,进行数据库保存User findById = userService.find(user.getId()); int age = DateUtil.getAge(user.getBirthDay()); if (age < 0) {returnResult.error(CodeMsg.ADMIN_PUBLIC_AGE); }user.setAge(age); //讲提交的用户信息指定字段复制到已存在的user对象中,该方法会覆盖新字段内容BeanUtils.copyProperties(user, findById, "id","createTime","updateTime"); if(userService.save(findById) == null){return Result.error(CodeMsg.ADMIN_USE_EDIT_ERROR); }operaterLogService.add("编辑用户,用户名:" + user.getUsername()); return Result.success(true); } /*** 删除用户* @param id* @return*/ @RequestMapping(value="https://www.it610.com/delete",method=RequestMethod.POST) @ResponseBody public Result delete(@RequestParam(name="id",required=true)Long id){try {userService.delete(id); } catch (Exception e) {return Result.error(CodeMsg.ADMIN_USE_DELETE_ERROR); }operaterLogService.add("添加用户,用户ID:" + id); return Result.success(true); }}
医生管理控制层:
/** * 医生管理控制层 */ @Controller@RequestMapping("/doctor")public class DoctorController { @Autowiredprivate DoctorService doctorService; @Autowiredprivate UserService userService; @Autowiredprivate RoleService roleService; @Autowiredprivate OperaterLogService operaterLogService; @Autowiredprivate DepartmentService departmentService; @Autowiredprivate OrderReceivingService orderReceivingService; @Autowiredprivate BedAllotService bedAllotService; /*** 跳转医生列表页面* @param model* @param doctor* @param pageBean* @return*/@RequestMapping(value = "https://www.it610.com/list")public String list(Model model, Doctor doctor, PageBeanpageBean) {model.addAttribute("title", "医生列表"); if (doctor.getUser() != null) {model.addAttribute("name", doctor.getUser().getName()); }model.addAttribute("pageBean", doctorService.findList(doctor, pageBean)); return "admin/doctor/list"; } /*** 医生添加页面* @param model* @return*/@RequestMapping(value = "https://www.it610.com/add", method = RequestMethod.GET)public String add(Model model) { model.addAttribute("departments", departmentService.findAllDepartment()); return "admin/doctor/add"; } /*** 医生添加提交* @param doctor* @return*/@RequestMapping(value = "https://www.it610.com/add", method = RequestMethod.POST)@ResponseBodypublic Result add(Doctor doctor) { CodeMsg validate = ValidateEntityUtil.validate(doctor); if (validate.getCode() != CodeMsg.SUCCESS.getCode()) {return Result.error(validate); }if(Objects.isNull(doctor.getUser().getEmail())){return Result.error(CodeMsg.ADMIN_PUBLIC_NO_ISEXIST_EMAIL); }if(Objects.isNull(doctor.getUser().getMobile())){return Result.error(CodeMsg.ADMIN_PUBLIC_NO_ISEXIST_MOBILE); } if (!StringUtil.emailFormat(doctor.getUser().getEmail())) {return Result.error(CodeMsg.ADMIN_PUBLIC_EMAIL); }if (!StringUtil.isMobile(doctor.getUser().getMobile())) {return Result.error(CodeMsg.ADMIN_PUBLIC_MOBILE); } Role role = roleService.find(Doctor.DOCTOR_ROLE_ID); String dNo = StringUtil.generateSn(Doctor.PATIENT_ROLE_DNO); int age = DateUtil.getAge(doctor.getUser().getBirthDay()); if (age < 0) {return Result.error(CodeMsg.ADMIN_PUBLIC_AGE); } doctor.setDoctorDno(dNo); doctor.getUser().setPassword(dNo); doctor.getUser().setUsername(dNo); doctor.getUser().setRole(role); User user = doctor.getUser(); user.setAge(age); User save = userService.save(user); if (userService.save(user) == null) {return Result.error(CodeMsg.ADMIN_USE_ADD_ERROR); }operaterLogService.add("添加用户,用户名:" + user.getUsername()); doctor.setUser(save); if (doctorService.save(doctor) == null) {return Result.error(CodeMsg.ADMIN_DOCTOR_ADD_EXIST); }return Result.success(true); } /*** 医生修改页面* @param model* @param id* @return*/@RequestMapping(value = "https://www.it610.com/edit", method = RequestMethod.GET)public String edit(Model model, @RequestParam(name = "id") Long id) {model.addAttribute("doctor", doctorService.find(id)); model.addAttribute("departments", departmentService.findAllDepartment()); return "admin/doctor/edit"; } /*** 医生修改提交* @param doctor* @return*/@RequestMapping(value = "https://www.it610.com/edit", method = RequestMethod.POST)@ResponseBodypublic Result edit(Doctor doctor) {Doctor findDoctor = doctorService.find(doctor.getId()); List doctors = doctorService.findByDoctorDno(findDoctor.getDoctorDno()); if (doctors.size() > 1 || doctors.size() <= 0) {return Result.error(CodeMsg.ADMIN_PATIENT_PNO_ERROR); } if (doctors.get(0).getId() != doctor.getId()) {return Result.error(CodeMsg.ADMIN_PATIENT_PNO_ERROR); }if(Objects.isNull(doctor.getUser().getEmail())){return Result.error(CodeMsg.ADMIN_PUBLIC_NO_ISEXIST_EMAIL); }if(Objects.isNull(doctor.getUser().getMobile())){return Result.error(CodeMsg.ADMIN_PUBLIC_NO_ISEXIST_MOBILE); }if (!StringUtil.emailFormat(doctor.getUser().getEmail())) {return Result.error(CodeMsg.ADMIN_PUBLIC_EMAIL); }if (!StringUtil.isMobile(doctor.getUser().getMobile())) {return Result.error(CodeMsg.ADMIN_PUBLIC_MOBILE); } int age = DateUtil.getAge(doctor.getUser().getBirthDay()); if (age < 0) {return Result.error(CodeMsg.ADMIN_PUBLIC_AGE); } findDoctor.setDepartment(doctor.getDepartment()); findDoctor.setDescription(doctor.getDescription()); findDoctor.setExperience(doctor.getExperience()); User user = doctor.getUser(); user.setAge(age); BeanUtils.copyProperties(user, findDoctor.getUser(), "id", "createTime", "updateTime", "password", "username", "role"); userService.save(findDoctor.getUser()); doctorService.save(findDoctor); return Result.success(true); } /*** 删除医生用户* @param id* @return*/@RequestMapping(value = "https://www.it610.com/delete", method = RequestMethod.POST)@ResponseBodypublic Result delete(@RequestParam(name = "id", required = true) Long id) {try {Doctor doctor = doctorService.find(id); doctorService.deleteById(id); userService.delete(doctor.getUser().getId()); } catch (Exception e) {return Result.error(CodeMsg.ADMIN_DOCTOR_DELETE_ERROR); }operaterLogService.add("添加用户,用户ID:" + id); return Result.success(true); } /*** 修改个人出诊状态页面* @param model* @return*/@RequestMapping(value = "https://www.it610.com/updateStatus", method = RequestMethod.GET)public String updateDoctorStatus(Model model) {Doctor doctor = doctorService.findByLoginDoctorUser(); model.addAttribute("title","个人出诊信息修改"); model.addAttribute("doctor", doctor); return "admin/doctor/visitingStatus"; } /*** 提交修改个人出诊状态* @param doctor* @return*/@RequestMapping(value = "https://www.it610.com/updateStatus", method = RequestMethod.POST)@ResponseBodypublic Result editStatus(Doctor doctor) {Doctor doc = doctorService.findByLoginDoctorUser(); if(Objects.isNull(doctor.getUser().getEmail())){return Result.error(CodeMsg.ADMIN_PUBLIC_NO_ISEXIST_EMAIL); }if(Objects.isNull(doctor.getUser().getMobile())){return Result.error(CodeMsg.ADMIN_PUBLIC_NO_ISEXIST_MOBILE); }if (!StringUtil.isMobile(doctor.getUser().getMobile())) {return Result.error(CodeMsg.ADMIN_PUBLIC_MOBILE); }if (!StringUtil.emailFormat(doctor.getUser().getEmail())) {return Result.error(CodeMsg.ADMIN_PUBLIC_EMAIL); }User user = doc.getUser(); user.setEmail(doctor.getUser().getEmail()); user.setMobile(doctor.getUser().getMobile()); user.setStatus(doctor.getStatus()); doc.setStatus(doctor.getStatus()); doc.setDescription(doctor.getDescription()); doc.setExperience(doctor.getExperience()); BeanUtils.copyProperties(user, doctor.getUser(), "id", "createTime", "updateTime", "password", "username", "role", "sex", "age", "birthday"); doctorService.save(doc); return Result.success(true); } /*** 医生查询接单记录* @param model* @param pageBean* @return*/@RequestMapping(value = "https://www.it610.com/orderRecord",method = RequestMethod.GET)public String doctorOrderRecords(Model model, PageBean pageBean) {//获取医生登录的信息Doctor loginDoctorUser = doctorService.findByLoginDoctorUser(); model.addAttribute("title", "出诊信息"); model.addAttribute("pageBean", orderReceivingService.findByDoctorId(pageBean,loginDoctorUser.getId())); return "admin/doctor/orderRecord"; } /*** 查看自己科室所有医生信息* @param model* @param pageBean* @return*/@RequestMapping(value = "https://www.it610.com/findByDepartment", method = RequestMethod.GET)public String AllDoctorByDepartment(Model model,PageBean pageBean) {Doctor loginDoctorUser = doctorService.findByLoginDoctorUser(); model.addAttribute("title", "本科室所有医生列表"); model.addAttribute("pageBean", doctorService.findAllByDepartment(pageBean, loginDoctorUser.getDepartment().getId())); return "admin/doctor/doctorInformation"; } /*** 医生完成出诊订单* @param id* @return*/@RequestMapping(value = "https://www.it610.com/orderRecord",method = RequestMethod.POST)@ResponseBodypublic Result modifyVisitStatus(Long id){boolean flag = doctorService.modifyVisitStatus(id); if (flag){return Result.success(true); }return Result.error(CodeMsg.ADMIN_DOCTOR_CANNOT_REPEATED); } /*** 管理员查看所有订单信息* @param model* @param orderReceiving* @param pageBean* @return*/@RequestMapping(value="https://www.it610.com/allOrderInformation",method = RequestMethod.GET)public String findAll(Model model,OrderReceiving orderReceiving, PageBean pageBean){model.addAttribute("title","出诊信息"); model.addAttribute("pageBean",orderReceivingService.findList(orderReceiving,pageBean)); return "admin/doctor/allOrderInformation"; } /*** 医生查询负责的住院信息*/@RequestMapping(value="https://www.it610.com/bedAllot")public String bedAllotSelf(Model model,PageBean pageBean){Doctor loginDoctorUser = doctorService.findByLoginDoctorUser(); Long doctorId = loginDoctorUser.getId(); model.addAttribute("title","住院信息"); model.addAttribute("pageBean",bedAllotService.findByDoctor(pageBean,doctorId)); return "admin/doctor/bedAllot"; } }
【Java毕业设计实战之医院心理咨询问诊系统的实现】到此这篇关于Java毕业设计实战之医院心理咨询问诊系统的实现的文章就介绍到这了,更多相关Java 医院心理咨询问诊系统内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
推荐阅读
- Mysql数据库按时间点恢复实战记录
- Java利用Geotools实现不同坐标系之间坐标转换
- 开源技术交流丨ChengYing部署Hadoop集群实战
- java开发|Idea连接mysql时区错误问题永久解决
- Javascript类和继承
- 【Java中的线程】java.lang.Thread|【Java中的线程】java.lang.Thread 类分析
- Java on Azure Tooling 6月更新|Azure Toolkit for IntelliJ 与 Gradle插件
- java|基于DoS攻击能量分级的ICPS综合安全控制与通信协同设计
- Java后端|Spring Boot知识系列—Spring Boot整合日志框架【详解】
- Java入门基础|Java入门基础第4天《Java编程规范及编译源代码常见错误的解决方法》