基于SSM的物业管理系统的设计与实现 (含源码+sql+视频导入教程)

👉文末查看项目功能视频演示+获取源码+sql脚本+视频导入教程视频

1 、功能描述

  基于SSM的物业管理系统拥有两种角色

  管理员:用户管理、用户缴费、车位管理、车位分配、新闻管理、公告管理、投诉处理等

  业主:个人车位、投诉、缴费、查看新闻公告等

2、项目技术

后端框架:SSM(Spring、SpringMVC、Mybatis)

前端技术:Layui、jsp、css、JavaScript、JQuery

2.1 SSM

  SSM(Spring+SpringMVC+MyBatis)是目前比较主流的Java EE企业级框架,适用于搭建各种大型的企业级应用系统。其中,Spring就像是整个项目中的粘合剂,负责装配bean并管理其生命周期,实现控制反转(IoC)的功能。SpringMVC负责拦截用户请求,通过DispatcherServlet将请求匹配到相应的Controller并执行。而MyBatis则是对JDBC的封装,让数据库底层操作变得透明,通过配置文件关联到各实体类的Mapper文件,实现了SQL语句映射。

2.2 mysql

  MySQL是一款Relational Database Management System,直译过来的意思就是关系型数据库管理系统,MySQL有着它独特的特点,这些特点使他成为目前最流行的RDBMS之一,MySQL想比与其他数据库如ORACLE、DB2等,它属于一款体积小、速度快的数据库,重点是它符合本次毕业设计的真实租赁环境,拥有成本低,开发源码这些特点,这也是选择它的主要原因。

3、开发环境

  • JAVA版本:JDK1.8
  • IDE类型:IDEA、Eclipse都可运行
  • tomcat版本:Tomcat 7-10版本均可
  • 数据库类型:MySql(5.x和8.x版本都可)
  • maven项目:否
  • 硬件环境:Windows 或者 Mac OS

4、功能截图+视频演示+文档目录

4.1 登录

登录

4.2 管理员模块

管理员-用户管理

管理员-用户缴费

管理员-车位管理

管理员-车位分配

管理员-新闻管理

管理员-公告管理

管理员-投诉处理

4.3 业主模块

用户-个人车位

用户-个人投诉

用户-费用单

用户-查看新闻和公告

5 、核心代码实现

5.1 配置代码

hibernate.dialect=org.hibernate.dialect.MySQLDialect
driverClassName=com.mysql.cj.jdbc.Driver
validationQuery=SELECT 1
jdbc_url=jdbc:mysql://localhost:3306/estate_manage_sys?characterEncoding=utf8&useSSL=false&serverTimezone=UTC&rewriteBatchedStatements=true
jdbc_username=root
jdbc_password=root

5.2 登录+注册+其它代码



@Controller
@RequestMapping("/commonapi")
public class LoginController {
    SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy-MM-dd");
    SimpleDateFormat sdf3 = new SimpleDateFormat("yyyyMMddHHmmss");
    @Autowired
    UserInfoMapper userInfoMapper;
    @Autowired
    AdminInfoMapper adminInfoMapper;

    /**
      系统进入登录页面接口
    */
    @RequestMapping(value = "sys_login")
    public String sys_login(ModelMap modelMap, String msg) {
        modelMap.addAttribute("msg", msg);

        return "sys_login";
    }

    /**
      系统退出接口
    */
    @RequestMapping(value = "sys_logout")
    public String sys_logout(ModelMap modelMap, String msg,
        HttpServletRequest request) {
        request.getSession().removeAttribute(CommonVal.sessionName);

        return "redirect:/commonapi/sys_login";
    }

    /**
      系统提交登录验证信息接口
    */
    @RequestMapping("sysSubmit")
    @ResponseBody
    public Object sysSubmit(LoginModel user, String imgCode, ModelMap modelMap,
        HttpServletRequest request, HttpServletResponse response) {
        HttpSession session = request.getSession();
        Map<String, Object> rs = new HashMap<String, Object>();

        //图片验证码验证,从session中查询验证码并校验
        if ((imgCode != null) &&
                !imgCode.toLowerCase()
                            .equals(request.getSession()
                                               .getAttribute(CommonVal.code)
                                               .toString().toLowerCase())) {
            rs.put("code", 0);
            rs.put("msg",
                "图片验证码错误");

            return rs;
        }

        if (user.getLoginType() == null) {
            rs.put("code", 0);
            rs.put("msg",
                "请选择登录角色");

            return rs;
        }

        if ((user.getName() == null) || user.getName().equals("")) {
            rs.put("code", 0);
            rs.put("msg",
                "请输入登录名");

            return rs;
        }

        if ((user.getPassword() == null) || user.getPassword().equals("")) {
            rs.put("code", 0);
            rs.put("msg",
                "请输入密码");

            return rs;
        }

        if (user.getLoginType() == 1) {
            AdminInfoExample te = new AdminInfoExample(); //验证管理员账号密码
            AdminInfoExample.Criteria tc = te.createCriteria();
            tc.andNameEqualTo(user.getName());
            tc.andPassWordEqualTo(user.getPassword());

            List<AdminInfo> tl = adminInfoMapper.selectByExample(te);

            if (tl.size() == 0) { //从数据库中查询不到账号
                rs.put("code", 0);
                rs.put("msg",
                    "登录名或密码错误");

                return rs;
            } else {
                LoginModel login = new LoginModel();
                login.setId(tl.get(0).getId());
                login.setLoginType(1);
                login.setName(user.getName());
                request.getSession().setAttribute(CommonVal.sessionName, login); //设置登录session,保持会话
                rs.put("code", 1);
                rs.put("msg",
                    "登录成功");

                return rs;
            }
        }

        if (user.getLoginType() == 2) {
            UserInfoExample te = new UserInfoExample(); //验证用户账号密码
            UserInfoExample.Criteria tc = te.createCriteria();
            tc.andNameEqualTo(user.getName());
            tc.andPassWordEqualTo(user.getPassword());

            List<UserInfo> tl = userInfoMapper.selectByExample(te);

            if (tl.size() == 0) { //从数据库中查询不到账号
                rs.put("code", 0);
                rs.put("msg",
                    "登录名或密码错误");

                return rs;
            } else {
                LoginModel login = new LoginModel();
                login.setId(tl.get(0).getId());
                login.setLoginType(2);
                login.setName(user.getName());
                request.getSession().setAttribute(CommonVal.sessionName, login); //设置登录session,保持会话
                rs.put("code", 1);
                rs.put("msg",
                    "登录成功");

                return rs;
            }
        }

        rs.put("code", 0);
        rs.put("msg",
            "系统出错");

        return rs;

6 、 获取方式+功能视频演示

👇 大家点赞、收藏、关注、评论啦 👇🏻获取联系方式,后台回复关键词:物业👇🏻

请添加图片描述

  • 7
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值