基于SSM+BaiduMap.API+MySQL实现的疫情打卡系统

到山东找蓝翔

发布日期: 2021-08-24 09:32:00 浏览量: 217
评分:
star star star star star star star star star star_border
*转载请注明来自write-bug.com

1.项目简介

1.1 介绍

基于SSM框架搭建的疫情打卡系统,调用了百度地图的api接口,layui为框架,数据库为mysql。

1.2 软件架构

1.3 页面展示

登录页

注册页同登录页。

首页

打卡记录页

修改密码页

管理员页面

2.项目准备

  • MySQL5.7

  • Navicat Premium

  • Tomcat9.0.37

  • Maven3.3.9

  • IDEA

  • Layui前端框架

3.项目搭建

3.1 数据库设计

数据库模型

3.2 表结构

打卡信息表

用户表

3.3 sql语句

在Navicat Premium里运行sql语句

  1. /*
  2. Navicat MySQL Data Transfer
  3. Source Server : MySQL57
  4. Source Server Version : 50727
  5. Source Host : localhost:3306
  6. Source Database : healthcheck
  7. Target Server Type : MYSQL
  8. Target Server Version : 50727
  9. File Encoding : 65001
  10. Date: 2021-04-10 19:13:46
  11. */
  12. SET FOREIGN_KEY_CHECKS=0;
  13. -- ----------------------------
  14. -- Table structure for signinfo
  15. -- ----------------------------
  16. DROP TABLE IF EXISTS `signinfo`;
  17. CREATE TABLE `signinfo` (
  18. `username` varchar(20) NOT NULL,
  19. `temperature` varchar(10) DEFAULT NULL,
  20. `address` varchar(255) DEFAULT NULL,
  21. `date` varchar(20) DEFAULT NULL
  22. ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
  23. -- ----------------------------
  24. -- Records of signinfo
  25. -- ----------------------------
  26. INSERT INTO `signinfo` VALUES ('佐佳豪', '36', '九江市共青城市江西信息应用职业技术学院(共青校区)', '2021-04-06');
  27. INSERT INTO `signinfo` VALUES ('佐佳豪', '36', '九江市共青城市江西信息应用职业技术学院(共青校区)', '2021-04-07');
  28. INSERT INTO `signinfo` VALUES ('测试1', '37', '九江市共青城市江西信息应用职业技术学院(共青校区)', '2021-04-07');
  29. INSERT INTO `signinfo` VALUES ('佐佳豪', '123', '北京市丰台区江西大厦', '2021-04-08');
  30. INSERT INTO `signinfo` VALUES ('佐佳豪', '23', '北京市西城区中国中医科学院广安门医院', '2021-04-08');
  31. INSERT INTO `signinfo` VALUES ('佐佳豪', '23', '北京市西城区中国中医科学院广安门医院', '2021-04-08');
  32. INSERT INTO `signinfo` VALUES ('佐佳豪', '36', '南昌市红谷滩区江西省人民政府', '2021-04-09');
  33. INSERT INTO `signinfo` VALUES ('佐佳豪', '23', '北京市北京市地铁10号线', '2021-04-09');
  34. INSERT INTO `signinfo` VALUES ('佐佳豪', '23', '北京市北京市地铁10号线', '2021-04-09');
  35. INSERT INTO `signinfo` VALUES ('佐佳豪', '23', '北京市北京市地铁10号线', '2021-04-09');
  36. INSERT INTO `signinfo` VALUES ('佐佳豪', '23', '北京市北京市地铁10号线', '2021-04-09');
  37. INSERT INTO `signinfo` VALUES ('佐佳豪', '23', '北京市北京市地铁10号线', '2021-04-09');
  38. INSERT INTO `signinfo` VALUES ('4317', '37', '九江市共青城市江西信息应用职业技术学院(共青校区)', '2021-04-09');
  39. INSERT INTO `signinfo` VALUES ('李玮峰', '36', '上饶市婺源县江西婺源景区售票点', '2021-04-09');
  40. INSERT INTO `signinfo` VALUES ('1', '37', '九江市共青城市江西信息应用职业技术学院(共青校区)', '2021-04-09');
  41. INSERT INTO `signinfo` VALUES ('lwf2891541194', '36', '九江市共青城市江西信息应用职业技术学院(共青校区)', '2021-04-09');
  42. INSERT INTO `signinfo` VALUES ('cxq521', '36', '南昌市青云谱区江西信息应用职业技术学院', '2021-04-10');
  43. INSERT INTO `signinfo` VALUES ('万津津', '21', '九江市共青城市共青城市', '2021-04-10');
  44. INSERT INTO `signinfo` VALUES ('万津津', '43', '北京市朝阳区212影库(北京市朝阳区)', '2021-04-10');
  45. INSERT INTO `signinfo` VALUES ('123', '36', '北京市东城区天安门广场', '2021-04-10');
  46. -- ----------------------------
  47. -- Table structure for user
  48. -- ----------------------------
  49. DROP TABLE IF EXISTS `user`;
  50. CREATE TABLE `user` (
  51. `username` varchar(20) NOT NULL,
  52. `password` varchar(255) DEFAULT NULL,
  53. PRIMARY KEY (`username`)
  54. ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
  55. -- ----------------------------
  56. -- Records of user
  57. -- ----------------------------
  58. INSERT INTO `user` VALUES ('098', '098');
  59. INSERT INTO `user` VALUES ('1', '1');
  60. INSERT INTO `user` VALUES ('123', '123');
  61. INSERT INTO `user` VALUES ('4317', '4317');
  62. INSERT INTO `user` VALUES ('8888', '8888');
  63. INSERT INTO `user` VALUES ('999', '999');
  64. INSERT INTO `user` VALUES ('cxq123', '123');
  65. INSERT INTO `user` VALUES ('cxq521', '123');
  66. INSERT INTO `user` VALUES ('lwf2891541194', '123');
  67. INSERT INTO `user` VALUES ('万津津', '12345');
  68. INSERT INTO `user` VALUES ('佐佳豪', '123');
  69. INSERT INTO `user` VALUES ('傻逼', '1');
  70. INSERT INTO `user` VALUES ('李玮峰', '123');
  71. INSERT INTO `user` VALUES ('测试1', '123');
  72. INSERT INTO `user` VALUES ('重新1', '123');
  73. INSERT INTO `user` VALUES ('陈小青', '777');

4.项目实现

4.1 pojo(实体类)

  1. //lombok注释,省去写getset
  2. @Data
  3. @AllArgsConstructor
  4. @NoArgsConstructor
  5. public class User {
  6. private String username;//用户名
  7. private String password;//密码
  8. //signinfo 打卡记录
  9. private String temperature;//体温
  10. private String address;//地址
  11. private String date;//时间
  12. }

4.2 dao(数据持久层)

UserDao接口

  1. public interface UserDao {
  2. //登录用户
  3. User logUser(User user);
  4. //注册用户
  5. int regUser(@Param("username")String username,@Param("password") String password);
  6. //修改用户信息
  7. int updateUserInfo(User user);
  8. //查看打卡记录
  9. List<User> queryDataByUsername(@Param("username") String username);
  10. //添加打卡记录
  11. int addData(User user);
  12. //查询全部用户打卡记录
  13. List<User> queryDataAll();
  14. }

这个时候我们要去立马去编写UserDao.xml(sql映射文件)

  1. COPY<?xml version="1.0" encoding="UTF-8" ?>
  2. <!DOCTYPE mapper
  3. PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
  4. "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
  5. <mapper namespace="com.liefox.dao.UserDao">
  6. <!--修改用户信息-->
  7. <update id="updateUserInfo" parameterType="User">
  8. update user
  9. set username =#{username},
  10. password=#{password}
  11. where username=#{username};
  12. </update>
  13. <!--注册用户-->
  14. <insert id="regUser">
  15. insert into user (username, password)
  16. values (#{username}, #{password});
  17. </insert>
  18. <!--添加打卡记录-->
  19. <insert id="addData">
  20. insert into signinfo(username, temperature, address, date)
  21. VALUES (#{username},#{temperature},#{address},#{date})
  22. </insert>
  23. <!--登录用户-->
  24. <select id="logUser" resultType="com.liefox.pojo.User">
  25. select username, password
  26. from user
  27. where username = #{username}
  28. and password = #{password};
  29. </select>
  30. <!--查看打卡记录-->
  31. <select id="queryDataByUsername" resultType="com.liefox.pojo.User">
  32. select username, temperature, address, date
  33. from signinfo
  34. where username = #{username};
  35. </select>
  36. <!--查询全部用户打卡记录-->
  37. <select id="queryDataAll" resultType="com.liefox.pojo.User">
  38. select *
  39. from signinfo;
  40. </select>
  41. </mapper>

4.3 service(业务层)

UserService接口

  1. public interface UserService {
  2. //登录用户
  3. User logUser(User user);
  4. //注册用户
  5. int regUser(String username,String password);
  6. //修改用户信息
  7. int updateUserInfo(User user);
  8. //查看打卡记录
  9. List<User> queryDataByUsername(String username);
  10. //添加打卡记录
  11. int addData(User user);
  12. //查询全部用户打卡记录
  13. List<User> queryDataAll();
  14. }

UserServiceImpl(实现类)

  1. public class UserServiceImpl implements UserService {
  2. //业务层调用dao层
  3. private UserDao userDao;
  4. public void setUserDao(UserDao userDao) {
  5. this.userDao = userDao;
  6. }
  7. @Override
  8. public List<User> queryDataAll() {
  9. return userDao.queryDataAll();
  10. }
  11. @Override
  12. public User logUser(User user) {
  13. return userDao.logUser(user);
  14. }
  15. @Override
  16. public int updateUserInfo(User user) {
  17. return userDao.updateUserInfo(user);
  18. }
  19. @Override
  20. public int regUser(String username, String password) {
  21. return userDao.regUser(username,password);
  22. }
  23. @Override
  24. public List<User> queryDataByUsername(String username) {
  25. return userDao.queryDataByUsername(username);
  26. }
  27. @Override
  28. public int addData(User user) {
  29. return userDao.addData(user);
  30. }
  31. }

4.4 controller(控制层)和 前端视图层

我们按照访问网站的流程来:

首先是注册(只可注册普通用户)

RegisterController

  1. @Controller
  2. public class RegisterController {
  3. /**
  4. * 调用service层的登录方法
  5. */
  6. @Autowired
  7. @Qualifier("UserServiceImpl")
  8. private UserService userService;
  9. @RequestMapping("/IfRegister")
  10. public String Register(HttpSession session,String username, String password){
  11. System.out.println(username+"+"+password);
  12. try {
  13. int result = userService.regUser(username,password);
  14. if (result != 0){
  15. return "redirect:/login.jsp";
  16. }
  17. }catch (Exception e){
  18. session.setAttribute("info","用户名已存在!");
  19. System.out.println("用户名已存在!");
  20. return "register";
  21. }
  22. return "redirect:/login.jsp";
  23. }
  24. }

JumpController

类似于工具类,用于调转页面

  1. @Controller
  2. public class JumpController {
  3. //跳转首页
  4. @RequestMapping("/jumpMain")
  5. public String jumpMain() {
  6. return "main";
  7. }
  8. //跳转成功
  9. @RequestMapping("/jumpRegister")
  10. public String jumpRegister(HttpSession session) {
  11. session.removeAttribute("info");
  12. return "register";
  13. }
  14. //跳转到个人信息
  15. @RequestMapping("/jumpUserMod")
  16. public String jumpUserMod(){
  17. return "usermod";
  18. }
  19. }

SignController(打卡控制器)

  1. @Controller
  2. public class SignController {
  3. @Autowired
  4. @Qualifier("UserServiceImpl")
  5. private UserService userService;
  6. /**
  7. * 打卡控制层
  8. * */
  9. @RequestMapping("/SignIn")
  10. public String SignIn(User user) {
  11. System.out.println(user);
  12. int i = userService.addData(user);
  13. if (i != 0) {
  14. return "main";
  15. }
  16. return null;
  17. }
  18. }
上传的附件 cloud_download 开发.docx ( 2.04mb, 2次下载 ) cloud_download HealthCheck-master.zip ( 47.98mb, 2次下载 )
error_outline 下载需要12点积分

发送私信

会冒泡的可乐

111
文章数
12
评论数
最近文章
eject