基于javaweb的校园共享自行车管理系统(java+ssm+jsp+easyui+bootstrap+mysql)
基于javaweb的校园共享自行车管理系统(java+ssm+jsp+easyui+bootstrap+mysql)
运行环境
Java≥8、MySQL≥5.7、Tomcat≥8
开发工具
eclipse/idea/myeclipse/sts等均可配置运行
适用
课程设计,大作业,毕业设计,项目练习,学习演示等
功能说明
基于javaweb+mysql的校园共享自行车管理系统(java+SSM+JSP+EasyUI+BootStrap+mysql)
项目介绍
管理员角色包含以下功能: 管理员登录,用户管理,服务点管理,共享单车管理,车辆分类管理,学生管理,自行车租赁管理,统计信息,密码修改等功能。
用户角色包含以下功能: 用户登录,基本信息查看等功能。
环境需要
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项目:是;
技术栈
- 后端:Spring+SpringMVC+Mybatis 2. 前端:JSP+EasyUI+BootStrap+jQuery
使用说明
- 使用Navicat或者其它工具,在mysql中创建对应名称的数据库,并导入项目的sql文件; 2. 使用IDEA/Eclipse/MyEclipse导入项目,Eclipse/MyEclipse导入时,若为maven项目请选择maven;若为maven项目,导入成功后请执行maven clean;maven install命令,然后运行; 3. 将项目中jdbc.properties配置文件中的数据库配置改为自己的配置; 4. 运行项目,输入localhost:8080/ 登录
用户管理控制层:
@Controller
public class UserController {
@Autowired
UserServiceImpl userService;
/*
queryUserlike 通过用户姓名进行模糊查询
*/
@GetMapping(“/queryUserlike/{username}”)
@ResponseBody
public Msg queryUserlikeId(@RequestParam(value = “pn”,defaultValue = “1”) Integer pn,
@PathVariable(“username”) String username){
PageHelper.startPage(pn,20);
List users = userService.queryByUserName(username);
PageInfo page=new PageInfo(users,5);
return Msg.success().add(“pageInfo”,page);
/*
前端发送请求后端分页数据,
*/
@GetMapping(“/userTables”)
@ResponseBody
public Msg userTables(@RequestParam(value = “pn”,defaultValue = “1”) Integer pn){
PageHelper.startPage(pn,7);
List users = userService.getAll();
PageInfo page=new PageInfo(users,5);
return Msg.success().add(“pageInfo”,page);
//到tables页面
@RequestMapping(“/usertables”)
public String toUserTables(Map<String,Object> map){
List users = userService.getAll();
map.put(“users”,users);
return “Tables”;
//点击编辑按键传入userid查询用户,返回用户信息
@GetMapping(“/queryUserByID/{userid}”)
@ResponseBody
public Msg queryUserID(@PathVariable(“userid”) Integer userid,Map<String,Object> map){
User users = userService.getUserByID(userid);
return Msg.success().add(“users”,users);
/*
- 查询全部用户
*/
/*@GetMapping(“/user22”)
public String getAllUser(Map<String,Object> map){
List users = userService.getAll();
map.put(“users”,users);
return “Dashboard”;
}*/
/*
- 用户删除请求
*/
@DeleteMapping(value = “/user/{ids}”)
@ResponseBody
public Msg delEmp(@PathVariable(“ids”) String ids) {
if(ids.contains(“-”)) {
List delids = new ArrayList();
String[] split = ids.split(“-”);
for (String string : split) {
delids.add(Integer.parseInt(string));
userService.batchUser(delids);
}else {
int id = Integer.parseInt(ids);
userService.deleteUser(id);
return Msg.success();
/*
- 用户更新
*/
@PutMapping(value = “/user/{userID}”)
@ResponseBody
public Msg saveEmp(User user) {
System.out.println(user);
userService.updateUser(user);
return Msg.success();
/*
- 根据用户ID查询结果
*/
@GetMapping(value = “user/{id}”)
@ResponseBody
public Msg getEmp(@PathVariable(value = “id”)Integer userID) {
User user = userService.getUserByID(userID);
return Msg.success().add(“user”, user);
/*
- 检查用户名是否可用
*/
@RequestMapping(value = “/checkAddUser”)
@ResponseBody
public Msg checkAddUser(@RequestParam(“username”)String userName) {
//先判断用户名是否合法的表达式
String regex = “(1{6,16} ) ∣ ( [ u 2 E 80 − u 9 F F F ] + )|(^[\\u2E80-\\u9FFF]+ )∣([u2E80−u9FFF]+)”;
boolean c = userName.matches(regex);
if(!c) {
return Msg.fail().add(“va_msg”, “用户名可以是2-5位中文,或者6-16位英文和数字的组合”);
//数据库用户名重复校验
boolean b = userService.checkUserName(userName);
if(b) {
return Msg.success().add(“va_msg”, “用户名可用”);
}else {
return Msg.fail().add(“va_msg”, “用户名已存在”);
/校验手机号码格式/
@RequestMapping(“/checkAddTel”)
@ResponseBody
public Msg checkAddTel(@RequestParam(value = “usertel”)String userTel1) {
String userTel = userTel1.trim();
String regex = “(^1\d{10}$)”;
boolean matches = userTel.matches(regex);
if(matches == true){
return Msg.success().add(“va_msg”,“”);
}else{
return Msg.fail().add(“va_msg”,“手机号必须以1开头,11位的数字!”);
/校验年龄码格式/
@RequestMapping(“/checkAddAge”)
@ResponseBody
public Msg checkAddAge(@RequestParam(value = “userage”)Integer userAge1) {
String s = userAge1.toString();
String userTel = s.trim();
String regex = “(^\d{1,3}$)”;
boolean matches = userTel.matches(regex);
if(matches == true){
return Msg.success().add(“va_msg”,“”);
}else{
return Msg.fail().add(“va_msg”,“请输入数字”);
/校验密码格式/
@RequestMapping(“/checkAddPwd”)
@ResponseBody
public Msg checkAddPwd(@RequestParam(value = “userpwd”)String userPwd1) {
String userPwd = userPwd1.trim();
String regex = “(2{6,16}$)”;
boolean matches = userPwd.matches(regex);
if(matches == true){
return Msg.success().add(“va_msg”,“”);
}else{
return Msg.fail().add(“va_msg”,“密码格式不正确:必须超过6位,小于16位的英文和数字!”);
/*******************************************插入
点击保存按钮,新增用户
*/
@PostMapping(“/insertUser”)
@ResponseBody
public Msg insertUser(User user){
user.setUserid(null);
userService.insertUser(user);
return Msg.success().add(“va_msg”,“插入成功!”);
//点击更新按钮,更新修改的数据
@PutMapping(“/updateUser”)
@ResponseBody
public Msg updateUser(User user){
userService.updateUser(user);
return Msg.success().add(“va_msg”,“插入成功!”);
//用户删除
@DeleteMapping(“/deleteUser/{userid}”)
@ResponseBody
public Msg deleteEmployee(@PathVariable(“userid”) Integer userid){
boolean b = userService.deleteUser(userid);
if (b){
return Msg.success().add(“va_msg”,“用户删除成功!”);
}else {
return Msg.fail().add(“va_msg”,“用户删除失败!”);
/*
前端ajax请求,查询userid是否在表中存在
*/
@GetMapping(“/checkUserID”)
@ResponseBody
public Msg checkUserID(@RequestParam(“userid”) Integer userid){
boolean b = userService.checkUserID(userid);
if(b){
return Msg.success().add(“va_msg”,“用户名存在!”);
}else {
return Msg.fail().add(“va_msg”,“用户名不存在,重新输入!”);
后台管理员管理控制层:
@Controller
public class ManagerController {
@Autowired
ManagerServiceImpl managerService;
//进入忘记密码页面
@RequestMapping(“/forgotPwd”)
public String toForgotPage(){
return “ForgotPassword”;
@RequestMapping(“/forgotPwd2”)
public String toForgotPage2(){
return “ForgotPassword2”;
@RequestMapping(“/logout”)
public String toLoginPage(HttpSession session){
Enumeration attributeNames = session.getAttributeNames();
while (attributeNames.hasMoreElements()) {
session.removeAttribute(attributeNames.nextElement());
return “Login”;
//进入重置密码页面
@RequestMapping(“/register”)
public String toRegisterPage(){
return “Register”;
//登陆和忘记密码==》检查用户名是否存在
@GetMapping(“/checkLoginManagerName”)
@ResponseBody
public Msg checkLoginManagerName(@RequestParam(“managername”) String managername1){
String managername = managername1.trim();
String regex = “(3{6,16} ) ∣ ( [ u 2 E 80 − u 9 F F F ] + )|(^[\\u2E80-\\u9FFF]+ )∣([u2E80−u9FFF]+)”;
boolean c = managername.matches(regex);
if(!c) {
return Msg.fail().add(“va_msg”, “用户名是2-5位中文,或者6-16位英文和数字的组合”);
boolean b = managerService.checkManagerName(managername);
if (b==true){
return Msg.fail().add(“va_msg”,“用户名不存在!”);
}else {
return Msg.success().add(“va_msg”,“”);
//注册检查用户名是否存在
@GetMapping(“/checkManagerName”)
@ResponseBody
public Msg checkManagerName(@RequestParam(“managername”) String managername1){
String managername = managername1.trim();
String regex = “(4{6,16} ) ∣ ( [ u 2 E 80 − u 9 F F F ] + )|(^[\\u2E80-\\u9FFF]+ )∣([u2E80−u9FFF]+)”;
boolean c = managername.matches(regex);
if(!c) {
return Msg.fail().add(“va_msg”, “用户名可以是2-5位中文,或者6-16位英文和数字的组合”);
boolean b = managerService.checkManagerName(managername);
if (b==true){
return Msg.success().add(“va_msg”,“用户名可用!”);
}else {
return Msg.fail().add(“va_msg”,“用户名已存在!”);
//检查手机号是否是十一位
@GetMapping(“/checkManagerTel”)
@ResponseBody
public Msg checkManagerTel(@RequestParam(“managertel”) String managertel1){
String managertel = managertel1.trim();
String regex = “(^1\d{10}$)”;
boolean matches = managertel.matches(regex);
if(matches == true){
return Msg.success().add(“va_msg”," ");
}else{
return Msg.fail().add(“va_msg”,“手机号必须以1开头,11位的数字!”);
//登陆检查密码
@GetMapping(“/checkLoginManagerPwd”)
@ResponseBody
public Msg checkLoginManagerPwd(@RequestParam(“managerpwd”) String managerpwd1){
String managerpwd = managerpwd1.trim();
String regex = “(5{6,16}$)”;
boolean matches = managerpwd.matches(regex);
if(matches == true){
return Msg.success().add(“va_msg”," ");
}else{
return Msg.fail().add(“va_msg”,“密码格式不正确:必须超过6位,小于16位!”);
//注册检查密码
@GetMapping(“/checkManagerPwd”)
@ResponseBody
public Msg checkManagerPwd(@RequestParam(“managerpwd”) String managerpwd1){
String managerpwd = managerpwd1.trim();
String regex = “(6{6,16}$)”;
boolean matches = managerpwd.matches(regex);
if(matches == true){
return Msg.success().add(“va_msg”," ");
}else{
return Msg.fail().add(“va_msg”,“密码格式不正确:必须超过6位,小于16位!”);
/*新增管理员
**/
@PostMapping(“/registerManager”)
public String registerManger(Manager manager,Map<String,Object> map){
manager.setManagerid(null);
boolean flag = managerService.createManager(manager);
if(flag == true){
map.put(“msg”,“插入成功!”);
return “redirect:share.html”;
}else{
map.put(“msg”,“插入失败!”);
return “Register”;
//点击进入按钮校验用户名和密码是否正确
@PostMapping(“/loginD”)
public String loginDashboard(@RequestParam(“managername”) String managername1,
@RequestParam(“managerpwd”) String managerpwd1,
Map<String,Object> map, HttpSession session){
/*
==true没有该用户
==false 用户存在
*/
String managername = managername1.trim();
String managerpwd = managerpwd1.trim();
if(managername != “” && managerpwd!=“”){
boolean name = managerService.checkManagerName(managername);
boolean pwd = managerService.checkManagerPwd(managerpwd);
if(name == false && pwd ==false ){
// System.out.println(“用户名或密码正确!”);
session.setAttribute(“username”,managername);
return “redirect:/user22”;
}else{
// System.out.println(“密码错误!”);
map.put(“msg”,“账号密码错误,请重新输入账号和密码!”);
return “Login”;
}else {
map.put(“msg”,“请输入账号or密码!”);
return “Login”;
/*resetpwd
- 点击确认修改密码并且返回登陆页面*/
@PutMapping(“/resetpwd”)
public String backLogin(@RequestParam(“managername”) String managername1,
@RequestParam(“managerpwd”) String managerpwd1,
Map<String,Object> map){
String managername = managername1.trim();
String managerpwd = managerpwd1.trim();
if (managername != “” && managerpwd != “”){
boolean tel = managerService.checkManagerName(managername);
if(tel == true){
map.put(“msg”,“账号不存在,请重新输入!”);
return “ForgotPassword”;
}else {
int i = managerService.updateUserPwd(managername,managerpwd);
map.put(“msg”,“reset success!”);
if(i>0){
return “redirect:/share.html”;
}else {
return “ForgotPassword”;
}else {
map.put(“msg”,“账号或新密码为空,请输入!”);
return “ForgotPassword”;
@PutMapping(“/resetpwd2”)
public String backLogin2(@RequestParam(“managername”) String managername1,
@RequestParam(“managerpwd”) String managerpwd1,
Map<String,Object> map){
String managername = managername1.trim();
String managerpwd = managerpwd1.trim();
if (managername != “” && managerpwd != “”){
boolean tel = managerService.checkManagerName(managername);
if(tel == true){
map.put(“msg”,“账号不存在,请重新输入!”);
return “ForgotPassword2”;
}else {
int i = managerService.updateUserPwd(managername,managerpwd);
map.put(“msg”,“reset success!”);
if(i>0){
return “redirect:/forgotPwd2”;
}else {
return “ForgotPassword2”;
}else {
map.put(“msg”,“账号或新密码为空,请输入!”);
return “ForgotPassword2”;
统计管理控制层:
@Controller
public class SeatuseController {
@Autowired
SeatuseServiceImpl seatuseService;
/*
通过用户ID进行查询
*/
@GetMapping(“/queryByUserID/{userid}”)
@ResponseBody
public Msg queryUserID(@RequestParam(value = “pn”,defaultValue = “1”) Integer pn,
@PathVariable(“userid”) Integer userid){
PageHelper.startPage(pn,20);
List users = seatuseService.queryByUserID(userid);
PageInfo page=new PageInfo(users,5);
return Msg.success().add(“pageInfo”,page);
/*
到使用统计页面
*/
@RequestMapping(“/seatUseCount”)
public String toSeatUserPage(Map<String,Object> map){
List seatusers = seatuseService.getAll();
map.put(“sus”,seatusers);
return “SeatUse”;
@GetMapping(“/seatUsePage”)
@ResponseBody
public Msg SeatUserInfo(@RequestParam(value = “pn”,defaultValue = “1”) Integer pn){
PageHelper.startPage(pn,6);
List seatusers = seatuseService.getAll();
//使用pageInfo包装查询后的结果,只需要将pageInfo交给页面就好了
//封装了详细的分页信息,包括有我们查询出来的数据,传入连续显示的页数
PageInfo page=new PageInfo(seatusers,5);
return Msg.success().add(“pageInfo”,page);
/*
插入数据到记录表中
*/
@PostMapping(“/insertSUInfo”)
@ResponseBody
public Msg insertSUInfo(Seatuse seatuse, @RequestParam(“status”) String status){
boolean b = seatuseService.insertSeatUseInfo(seatuse, status);
if (b){
return Msg.success().add(“va_msg”,“插入到使用记录表成功!”);
}else {
return Msg.fail().add(“va_msg”,“插入到使用记录表失败!”);
@DeleteMapping(“/deleteSeatUseByID/{seatuserid}”)
@ResponseBody
public Msg deleteSeatUserInfo(@PathVariable(“seatuserid”) Integer seatuserid){
boolean b = seatuseService.deleteSeatUserInfo(seatuserid);
if(b){
return Msg.success().add(“va_msg”,“删除成功使用记录”);
}else {
return Msg.fail().add(“va_msg”,“删除失败使用记录”);
/*
获取状态为1的数据条数
*/
@GetMapping(“/state1Count/{state}”)
@ResponseBody
public Msg state1Count(@PathVariable(“state”) String state){
long l = seatuseService.queryStateCount(state);
return Msg.success().add(“state1Count”,l);
a-zA-Z0-9_- ↩︎
a-zA-Z0-9_- ↩︎
a-zA-Z0-9_- ↩︎
a-zA-Z0-9_- ↩︎
a-zA-Z0-9_- ↩︎
a-zA-Z0-9_- ↩︎
基于javaweb的校园共享自行车管理系统(java+ssm+jsp+easyui+bootstrap+mysql)相关推荐
- 基于javaweb的社区居民户籍管理系统(java+ssm+jsp+js+html+mysql)
基于javaweb的社区居民户籍管理系统(java+ssm+jsp+js+html+mysql) 运行环境 Java≥8.MySQL≥5.7.Tomcat≥8 开发工具 eclipse/idea/my ...
- 基于javaweb的红酒朔源管理系统(java+ssm+jsp+layui+jquery+mysql)
基于javaweb的红酒朔源管理系统(java+ssm+jsp+layui+jquery+mysql) 运行环境 Java≥8.MySQL≥5.7.Tomcat≥8 开发工具 eclipse/idea ...
- 基于javaweb的台球室计费管理系统(java+ssm+jsp+html+javascript+mysql)
基于javaweb的台球室计费管理系统(java+ssm+jsp+html+javascript+mysql) 运行环境 Java≥8.MySQL≥5.7.Tomcat≥8 开发工具 eclipse/ ...
- 基于javaweb的公寓房屋出租系统(java+ssm+jsp+easyui+echarts+mysql)
基于javaweb的公寓房屋出租系统(java+ssm+jsp+easyui+echarts+mysql) 运行环境 Java≥8.MySQL≥5.7.Tomcat≥8 开发工具 eclipse/id ...
- 基于javaweb的在线车队货车管理系统(java+ssm+jsp+bootstrap+mysql)
基于javaweb的在线车队货车管理系统(java+ssm+jsp+bootstrap+mysql) 运行环境 Java≥8.MySQL≥5.7.Tomcat≥8 开发工具 eclipse/idea/ ...
- 基于javaweb的医院病历信息管理系统(java+ssm+jsp+bootstrap+easyui+mysql)
基于javaweb的医院病历信息管理系统(java+ssm+jsp+bootstrap+easyui+mysql) 运行环境 Java≥8.MySQL≥5.7.Tomcat≥8 开发工具 eclips ...
- 基于javaweb的汽车维修管理系统(java+ssm+jsp+easyui+echarts+mysql)
基于javaweb的汽车维修管理系统(java+ssm+jsp+easyui+echarts+mysql) 运行环境 Java≥8.MySQL≥5.7.Tomcat≥8 开发工具 eclipse/id ...
- 基于javaweb的家校通管理系统(java+ssm+jsp+bootstrap+echarts+mysql)
基于javaweb的家校通管理系统(java+ssm+jsp+bootstrap+echarts+mysql) 运行环境 Java≥8.MySQL≥5.7.Tomcat≥8 开发工具 eclipse/ ...
- 基于javaweb的企业绩效考核管理系统(java+ssm+jsp+bootstrap+jquery+mysql)
基于javaweb的企业绩效考核管理系统(java+ssm+jsp+bootstrap+jquery+mysql) 运行环境 Java≥8.MySQL≥5.7.Tomcat≥8 开发工具 eclips ...
最新文章
- linux显示前一天时间,在linux显示昨天(前一天)的日期
- Activity两个启动方法的区别
- step4 . day5 进程与进程的创建
- 图解 Java 线程的生命周期,看完再也不怕面试官问了
- 使用Retrofit和RxJava
- Linux服务之nginx服务篇一(概念)
- 计算发送延时与传播延迟_Kafka科普系列 | 轻松理解Kafka中的延时操作
- 解决Visual C++ for Linux: -L~/projects/path_to_lib_folder 无法设置library search path的问题...
- KVM 介绍(1):简介及安装
- 利用console.time优化js代码
- 国科大学习资料--操作系统(杨力祥)--2015年思考题(含解答)
- 第三方支付业务流程介绍
- Speex manul(手册)中文版
- 2018最新win10激活密匙
- 【万恶之源~10大经典表情包出处】
- p站,一个神奇的网站
- 王菲给师父打电话拜年,受高人指点,她扶摇直上联手天王横扫歌坛
- 云上印尼:“数”影婆娑的千岛之国
- 采购工作内容是什么?如何成为一名优秀的采购?
- PHP 命令行模式实战之cli+mysql 模拟队列批量发送邮件(在Linux环境下PHP 异步执行脚本发送事件通知消息实际案例)...