住宿管理系统 java+jsp+web三件套

文章目录


写了将近3周,人都写麻了

记录下,第一个 ss 代码

仅仅使用了layui作为前端UI框架,因为另一个项目用的也是他,感觉一些组件比较好用

后端是java没用框架

数据库是Mysql 8.0.34
Tomcat 9.0.84

项目地址:gitee中的位置

或者复制:https://gitee.com/one-and-one-fourth/Accommodation-management-system


1、简要介绍

分为用户端和管理端,用户端只能预约和取消预约管理端增删改查等一系列千篇一律的功能 ,整体布局采用layui中的布局和风格


用户端的页面:

显然的,分页工能也是完美实现了,双击点开想要预约的楼 即可看到可以预约的房间信息,同样的双击即可预约


管理端页面:


2、数据库设计

设计的不好,能凑合这用>_< ,在这里算是给自己埋下了一颗雷

数据库的问题,也算是导致本项目草草结束的一大原因

设计的数据库如下:


院子(院子编号,院子名称,负责人编号)

楼(楼编号,楼名称,楼负责人编号 )

院子和楼(院子编号,楼编号

楼层(楼层编号,第几层,楼编号,楼层的负责人编号 )

房间(房间编号,楼层编号,应住的人数,实住的人数)

管理人员(管理人员编号,身份证号,管理人名字,性别,联系方式,管理的权限(院子 ,楼,楼层),密码 )

住宿人( 身份证号,名字,性别,联系方式,房间编号 ,密码,是否为管理员(0,1))


在使用的时候,也是一边用一边补,主打一个拆东墙补西墙 ,后来也是给自己搞得十分的难受
SQL代码如下:

sql 复制代码
create table courtyard( 
    cid int(5) auto_increment primary key,
    cname varchar(255),
    mid int(5)
)DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

create table building(
    bid int(5) auto_increment primary key,
    bname varchar(255),
    mid int(5)
)DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

create table buildANDcourty(
    bid int(5) primary key ,
    cid int(5)  not null,
    foreign key (cid) references courtyard(cid) on delete cascade,
    foreign key (bid) references building(bid) on delete cascade
)DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

create table floor(
    fid int(5) primary key,
    fCeng int not null,
    bid int(5) not null,
    mid int(5),
    foreign key (bid) references building(bid) on delete cascade
)DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

create table room(
    rid int(5) primary key,
    fid int(5) not null,
    numb1 int(5),
    numb2 int(5),
    foreign key (fid) references floor(fid) on delete cascade
)DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

create table manage(
    mid int(5) auto_increment primary key,
    idNumber varchar(255),
    mname varchar(255) not null,
    msex varchar(255),
    mtel varchar(255),
    mlevel int(1),
    mpassword varchar(255) not null
)DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

create table stay(
    idNumber varchar(255) primary key,
    sname varchar(255) not null,
    ssex varchar(255),
    stel varchar(255),
    rid int(5),
    spassword varchar(255) not null,
    srole int(1)
)DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

3、中间遇到的困难

一、数据问题

1、 后端返回数据的问题,必须为json格式,这个直接引入jackson这一系列jar包,使用的时候也是很简单


2、 同样的也是后端返回数据的问题,但是这个是实体类,通过json返回时会丢失部分属性,查找了很多的解决方法后,发现了是该属性的getter setter方法的名字出现了问题

java 复制代码
class Student{
  	private  int bid;
    private  String bName;//注意这里
 
	...
	public String getbName(){ // 通过idea自动生成的会是这样子
		return this.bName;
	}
}

正是因为这个自动生成的函数名字不符合 大驼峰命名 ,因此在使用json格式化的时候,它内置的方法无法获取该属性,导致数据丢失。

我们只需要将该属性的getter setter方法的函数名字第一个字符 设为大写 ,即可解决,但是,这样的话,变量的名字第一个字母也会变为大写,不过,权衡解决方法,果断将前端该字段进行调整。

分析下来,如果通过json格式化的实体类的属性只返回了部分,查看该属性的getter setter方法的名字第一个字母是否是大写 ,第一个字母指的是set get后面的,比如本例中的getbName(),第一个字母便是bName()的第一个b,修正为getBName()即可

通过这样看来,通过此方法也可能成为返回部分数据的一种方式


二、文件问题

1、 在使用的过程,为了实现动态的修改来解决频繁修正问题,将一个页面简单的分为了head body footer三部分,那么,对于一些js文件的引入肯定是放在footer中的,但是,在body中也是会通过一些手写的js来实现对页面的渲染,那么,问题来了,手写的js肯定是要放在使用的js库的下面,如果在body中在此添加一个相同的js库,会导致一些bug

因此,不要在一个页面中使用两个及以上的相同js文件

4、项目

部分文件位置,显而易见的十分麻烦


相关推荐
m0_738120721 小时前
应急响应——知攻善防Web-3靶机详细教程
服务器·前端·网络·安全·web安全·php
超级大只老咪7 小时前
数组相邻元素比较的循环条件(Java竞赛考点)
java
小浣熊熊熊熊熊熊熊丶7 小时前
《Effective Java》第25条:限制源文件为单个顶级类
java·开发语言·effective java
毕设源码-钟学长7 小时前
【开题答辩全过程】以 公交管理系统为例,包含答辩的问题和答案
java·eclipse
啃火龙果的兔子7 小时前
JDK 安装配置
java·开发语言
星哥说事7 小时前
应用程序监控:Java 与 Web 应用的实践
java·开发语言
派大鑫wink7 小时前
【JAVA学习日志】SpringBoot 参数配置:从基础到实战,解锁灵活配置新姿势
java·spring boot·后端
程序员爱钓鱼8 小时前
Node.js 编程实战:文件读写操作
前端·后端·node.js
xUxIAOrUIII8 小时前
【Spring Boot】控制器Controller方法
java·spring boot·后端
PineappleCoder8 小时前
工程化必备!SVG 雪碧图的最佳实践:ID 引用 + 缓存友好,无需手动算坐标
前端·性能优化