👉文末查看项目功能视频演示+获取源码+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;