java mysql基于SSM宠物寄养中心系统源码+文档
活动地址:毕业季·进击的技术er
博主介绍:✌在职Java研发工程师、专注于程序设计、源码分享、技术交流、专注于Java技术领域和毕业设计✌
项目名称
java mysql基于SSM宠物寄养中心系统源码+文档
视频效果
https://www.bilibili.com/video/BV18f4y1o7QJ/
系统说明
宠物寄养中心管理系统需要设计注册会员和管理人员的权限,其需要完成的功能如下:
1、会员功能
(1)该系统根据操作权限的不同分为管理员和普通用户两种,新用户在登陆前要进行用户注册,注册完成后方可进行登陆。登陆时无论是管理员还是普通用户必须输入正确的用户名和密码才能完成登陆,否则登陆失败。
(2)会员登录后需要在线查看寄养中心为宠物提供的房间、食品、服务等信息并能够为自己的宠物在线预订模拟支付生成订单。
(3)我的订单:会员在个人中心能够查看自己的各种预订订单并完成在线的确认收货操作。
(4)咨询建议:会员通过此功能能够在线咨询和提出建议给管理员。
(5)注册用户可以针对自己购买后的订单进行在线评论。
(6)公告信息浏览:能够在前台及时查看浏览新闻公告信息。
管理员功能
(1)基础信息管理:管理员可以完成宠物房间、服务、主食、零食等信息发布管理。
(2)客户订单管理:管理员在线处理会员的各种订单并可以完成在线确认和删除操作,按照相应条件完成订单信息查询。
(3)会员管理:会员注册时添加的注册信息保存如数据管理员可以对其查看管理。
(4)宠物用品类别管理,主要实现宠物用品类别的动态管理,方便注册用户注册后新建宠物用品信息时快速选择定位。
(5)回复留言建议,管理员能够查看会员的留言咨询建议并恢复。
(6)发布公告,针对寄养中心的新闻公告信息在线发布。
(7)评价管理,会员购买宠物用品评价后生成评价信息,管理员可以查看管理。
(8)管理员管理:管理员可以添加普通管理员,对其进行添加维护,修改器密码。
环境需要
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. 后端:Spring+SpringMVC+Mybatis
2. 前端:JSP+CSS+JavaScript+jQuery
使用说明
1. 使用Navicat或者其它工具,在mysql中创建对应名称的数据库,并导入项目的sql文件;
2. 使用IDEA/Eclipse/MyEclipse导入项目,Eclipse/MyEclipse导入时,若为maven项目请选择maven;
若为maven项目,导入成功后请执行maven clean;maven install命令,然后运行;
3. 将项目中springmvc-servlet.xml配置文件中的数据库配置改为自己的配置;
4. 运行项目,在浏览器中输入http://localhost:8080/ 登录
运行截图
用户管理控制层:
package com.houserss.controller;import javax.servlet.http.HttpSession;import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;import com.houserss.common.Const;
import com.houserss.common.Const.Role;
import com.houserss.common.ServerResponse;
import com.houserss.pojo.User;
import com.houserss.service.IUserService;
import com.houserss.service.impl.UserServiceImpl;
import com.houserss.util.MD5Util;
import com.houserss.util.TimeUtils;
import com.houserss.vo.DeleteHouseVo;
import com.houserss.vo.PageInfoVo;/*** Created by admin*/
@Controller
@RequestMapping("/user/")
public class UserController {@Autowiredprivate IUserService iUserService;/*** 用户登录* @param username* @param password* @param session* @return*/@RequestMapping(value = "login.do",method = RequestMethod.POST)@ResponseBodypublic ServerResponse<User> login(User user,String uvcode, HttpSession session){String code = (String)session.getAttribute("validationCode");if(StringUtils.isNotBlank(code)) {if(!code.equalsIgnoreCase(uvcode)) {return ServerResponse.createByErrorMessage("验证码不正确");}}ServerResponse<User> response = iUserService.login(user.getUsername(),user.getPassword());if(response.isSuccess()){session.setAttribute(Const.CURRENT_USER,response.getData());}return response;}}
管理员管理控制层:
package com.sxl.controller.admin;import java.util.List;
import java.util.Map;import javax.servlet.http.HttpServletRequest;import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;import com.sxl.controller.MyController;@Controller("adminController")
@RequestMapping(value = "/admin")
public class AdminController extends MyController {@RequestMapping(value = "/index")public String frame(Model model, HttpServletRequest request)throws Exception {return "/admin/index";}@RequestMapping(value = "/main")public String main(Model model, HttpServletRequest request)throws Exception {return "/admin/main";}@RequestMapping(value = "/tj1")public String tj1(Model model, HttpServletRequest request)throws Exception {String sql="select DATE_FORMAT(insertDate,'%Y-%m-%d') dates,sum(allPrice) price from t_order order by DATE_FORMAT(insertDate,'%Y-%m-%d') desc";List<Map> list = db.queryForList(sql);model.addAttribute("list", list);System.out.println(list);return "/admin/tj/tj1";}@RequestMapping(value = "/password")public String password(Model model, HttpServletRequest request)throws Exception {return "/admin/password";}@RequestMapping(value = "/changePassword")public ResponseEntity<String> loginSave(Model model,HttpServletRequest request,String oldPassword,String newPassword) throws Exception {Map admin = getAdmin(request);if(oldPassword.equals(admin.get("password").toString())){String sql="update t_admin set password=? where id=?";db.update(sql, new Object[]{newPassword,admin.get("id")});return renderData(true,"1",null);}else{return renderData(false,"1",null);}}
}
修改密码业务逻辑:
package com.sxl.controller.admin;import java.util.Map;import javax.servlet.http.HttpServletRequest;import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;import com.sxl.controller.MyController;@Controller("userController")
@RequestMapping(value = "/user")
public class UserController extends MyController {@RequestMapping(value = "/index")public String frame(Model model, HttpServletRequest request)throws Exception {return "/user/index";}@RequestMapping(value = "/main")public String main(Model model, HttpServletRequest request)throws Exception {return "/user/main";}@RequestMapping(value = "/password")public String password(Model model, HttpServletRequest request)throws Exception {return "/user/password";}@RequestMapping(value = "/changePassword")public ResponseEntity<String> loginSave(Model model,HttpServletRequest request,String oldPassword,String newPassword) throws Exception {Map user = getUser(request);if(oldPassword.equals(user.get("password").toString())){String sql="update t_user set password=? where id=?";db.update(sql, new Object[]{newPassword,user.get("id")});return renderData(true,"1",null);}else{return renderData(false,"1",null);}}@RequestMapping(value = "/mine")public String mine(Model model, HttpServletRequest request)throws Exception {
Map user =getUser(request);Map map = db.queryForMap("select * from t_user where id=?",new Object[]{user.get("id")});model.addAttribute("map", map); return "/user/mine";}@RequestMapping(value = "/mineSave")public ResponseEntity<String> mineSave(Model model,HttpServletRequest request,Long id,String username,String password,String name,String gh,String mobile) throws Exception{int result = 0;String sql="update t_user set name=?,gh=?,mobile=? where id=?";result = db.update(sql, new Object[]{name,gh,mobile,id});if(result==1){return renderData(true,"操作成功",null);}else{return renderData(false,"操作失败",null);}}}
通用管理模块:
package com.sxl.controller;import java.nio.charset.Charset;
import java.util.Locale;
import java.util.ResourceBundle;import javax.servlet.http.HttpServletRequest;import org.apache.commons.lang.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpHeaders;
import org.springframework.http.HttpStatus;
import org.springframework.http.MediaType;
import org.springframework.http.ResponseEntity;import com.sxl.util.JacksonJsonUtil;
import com.sxl.util.StringUtil;
import com.sxl.util.SystemProperties;public class BaseController {public static final Long EXPIRES_IN = 1000 * 3600 * 24 * 1L;// 1天@Autowiredprivate SystemProperties systemProperties;/*** 获得配置文件内容*/public String getConfig(String key) {return systemProperties.getProperties(key);}/*** 返回服务器地址 like http://192.168.1.1:8441/UUBean/*/public String getHostUrl(HttpServletRequest request) {String hostName = request.getServerName();Integer hostPort = request.getServerPort();String path = request.getContextPath();if (hostPort == 80) {return "http://" + hostName + path + "/";} else {return "http://" + hostName + ":" + hostPort + path + "/";}}/**** 获取当前的website路径 String*/public static String getWebSite(HttpServletRequest request) {String returnUrl = request.getScheme() + "://"+ request.getServerName();if (request.getServerPort() != 80) {returnUrl += ":" + request.getServerPort();}returnUrl += request.getContextPath();return returnUrl;}/*** 初始化HTTP头.* * @return HttpHeaders*/public HttpHeaders initHttpHeaders() {HttpHeaders headers = new HttpHeaders();MediaType mediaType = new MediaType("text", "html",Charset.forName("utf-8"));headers.setContentType(mediaType);return headers;}/*** 返回 信息数据* * @param status* @param msg* @return*/public ResponseEntity<String> renderMsg(Boolean status, String msg) {if (StringUtils.isEmpty(msg)) {msg = "";}String str = "{\"status\":\"" + status + "\",\"msg\":\"" + msg + "\"}";ResponseEntity<String> responseEntity = new ResponseEntity<String>(str,initHttpHeaders(), HttpStatus.OK);return responseEntity;}/*** 返回obj数据* * @param status* @param msg* @param obj* @return*/public ResponseEntity<String> renderData(Boolean status, String msg,Object obj) {if (StringUtils.isEmpty(msg)) {msg = "";}StringBuffer sb = new StringBuffer();sb.append("{");sb.append("\"status\":\"" + status + "\",\"msg\":\"" + msg + "\",");sb.append("\"data\":" + JacksonJsonUtil.toJson(obj) + "");sb.append("}");ResponseEntity<String> responseEntity = new ResponseEntity<String>(sb.toString(), initHttpHeaders(), HttpStatus.OK);return responseEntity;}/**** 获取IP(如果是多级代理,则得到的是一串IP值)*/public static String getIpAddr(HttpServletRequest request) {String ip = request.getHeader("x-forwarded-for");if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {ip = request.getHeader("Proxy-Client-IP");}if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {ip = request.getHeader("WL-Proxy-Client-IP");}if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {ip = request.getRemoteAddr();}if (ip != null && ip.length() > 0) {String[] ips = ip.split(",");for (int i = 0; i < ips.length; i++) {if (!"unknown".equalsIgnoreCase(ips[i])) {ip = ips[i];break;}}}return ip;}/*** 国际化获得语言内容* * @param key* 语言key* @param args* @param argsSplit* @param defaultMessage* @param locale* @return*/public static String getLanguage(String key, String args, String argsSplit,String defaultMessage, String locale) {String language = "zh";String contry = "cn";String returnValue = defaultMessage;if (!StringUtil.isEmpty(locale)) {try {String[] localeArray = locale.split("_");language = localeArray[0];contry = localeArray[1];} catch (Exception e) {}}try {ResourceBundle resource = ResourceBundle.getBundle("lang.resource",new Locale(language, contry));returnValue = resource.getString(key);if (!StringUtil.isEmpty(args)) {String[] argsArray = args.split(argsSplit);for (int i = 0; i < argsArray.length; i++) {returnValue = returnValue.replace("{" + i + "}",argsArray[i]);}}} catch (Exception e) {}return returnValue;}
}
源码获取:
大家点赞、收藏、关注、评论啦 、查看java mysql基于SSM宠物寄养中心系统源码+文档相关推荐
- 基于SSM的物料管理系统(源码+文档+数据库)
目录 摘要 一.需求分析 二.文档目录 三.功能性需求分析 四.非功能性需求分析 五.项目数据库设计 六.主要功能模块实现 6.1 登录板块 6.1.1 后台登录核心验证代码 6.1.2 前台登录跳转 ...
- 基于ssm jsp在线教育系统源码
演示视频: 基于ssm jsp在线教育系统源码 范围 系统主要目标设计 随着互联网发展,在线教学成为一种支持知识共享,无距离知识交流的一种方式,我们的系统主要完成在线视频观看,在线教学,在线知识交流, ...
- [附源码]Java计算机毕业设计SSM宠物寄养预约系统
项目运行 环境配置: Jdk1.8 + Tomcat7.0 + Mysql + HBuilderX(Webstorm也行)+ Eclispe(IntelliJ IDEA,Eclispe,MyEclis ...
- SSM框架二手车交易网站源码+文档
博主介绍:✌在职Java研发工程师.专注于程序设计.源码分享.技术交流.专注于Java技术领域和毕业设计✌
- java基于ssm空气质量检测系统源码网站空气质量监测源码
简介 Java基于ssm的空气质量检测系统,检测设备检测一定范围内的企业空气指数,如果有污染则地图显示红色标记. 演示视频 https://www.bilibili.com/video/BV1GK4y ...
- 基于java ssm springboot女士电商平台系统源码+文档设计
作者主页:Java李杨勇 简介:Java领域优质创作者.[Java李杨勇]公号作者 简历模板.学习资料.面试题库.技术互助[关注我,都给你] 文末获取源码 主要技术:spring, springmv ...
- java基于ssm框架的家教系统源码【java毕设项目】
很多大四同学苦于没有参考的毕设资料,或者下载的资料不全.代码有问题,数据有问题等等,造成毕设出现问题影响大学毕业.现在,免费提供项目源码和视频教程,让大家在短时间内可以完成自己的毕业设计. 对于jav ...
- 基于SSM的零食商城系统(带文档)
项目描述 基于SSM框架(Spring+SpringMVC+Mybatis)实现一个零食商城系统, 采用MVC设计思想架构, 实现: 1.用户角色包含以下功能:提交订单,支付页面,查看个人订单详情,查 ...
- java计算机毕业设计ssm拼团旅游系统(源码+系统+mysql数据库+Lw文档)
项目介绍 拼团旅游信息管理平台是使用JAVA的SSM技术,MySQL作为数据库开发,用户通过查看旅游信息,在线预订酒店,实现拼团旅游信息化管理.首先对本论文进行分析后,提出平台的相关技术,然后整理系统 ...
最新文章
- 问题1-2:能否说:“电路交换和面向连接是等同的,而分组交换和无连接是等同的”? 答:不行。这在概念上是很不一样的。这点可举例说明如下。...
- python 文件不存在时才能写入,读写模式xt
- GPU Gems1 - 15 逐像素光照的可见性管理
- 数论练习1 ( 曹冲养猪 + [POJ 2891]Strange Way to Express Integers + 乘法逆元【带证明】)
- 命令color_【按键精灵教程】CmpColorEx、FindMultiColor 命令详解
- 第二章 变量和基本类型
- java线程池概念_Java 线程池概念、原理、简单实现
- python qq群聊机器人_群聊太多?三步教你用 Python 自动监听转发群消息
- PicGo+github搭建免费图床
- 【每日一短语】夜长梦多
- 铱金属配合物Ir(dpbpa)2bphen+PF6-|Ir(dtbpa)3|Ir(dtq)2bpy+PF6-的合成
- MATLAB遗传算法工具箱安装包及安装方法(图解)
- 三院士漫谈:未来机器人:目标、路径和挑战
- 【EE308FZ Lab2-2】An Amazing Android App for Bobing Game
- 【云原生 | Kubernetes 系列】--Envoy熔断
- 【BZOJ1818】【CQOI2010】【XSY2428】内部白点(树状数组+扫描线)
- 使用git 提交本地文件夹及文件
- java如何创建一个文本框_创建一个有文本框和三个按钮的程序。当按下某个按钮时,使不同的文字(Java..._考试资料网...
- 号脉数据中心全生命周期,业务永续从细节做起
- 微信网页长按二维码不识别问题
热门文章
- chromebook刷机_如何在Chromebook上自定义外观设置
- 户外跑步必备装备有哪些,五款户外运动蓝牙耳机推荐
- 雷军的宿命:从万籁俱寂到舞台中央的喧嚣
- 官网下载mysql源码_mysql官网如何下载源码包?
- fetch设置请求超时
- office2016/2019版本打开时出现卡顿的解决办法
- 重磅推荐四个适用亚马逊Affiliate的WordPress主题
- java 页面查询_JAVA页面浏览量查询api调用代码实例
- 微信小程序新建/导入项目报错:self signed certificate in certificat 和 getaddrinfo ENOTFOUND servic的原因及解决办法
- 好莱坞名导:魔兽世界教会我们的7个人生哲理