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

文章目录

  • 1、简要介绍
  • 2、数据库设计
  • 3、中间遇到的困难
    • 一、数据问题
    • 二、文件问题
  • 4、项目


写了将近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中的布局和风格


用户端的页面:
  显然的,分页工能也是完美实现了,双击点开想要预约的楼即可看到可以预约的房间信息,同样的双击即可预约
在这里1入图片描述
在这里插入图片描述


管理端页面:
  
在这里插入图片描述
在这里插入图片描述

2、数据库设计

  设计的不好,能凑合这用>_< ,在这里算是给自己埋下了一颗雷
  数据库的问题,也算是导致本项目草草结束的一大原因

设计的数据库如下:


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

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

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

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

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

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

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


在使用的时候,也是一边用一边补,主打一个拆东墙补西墙 ,后来也是给自己搞得十分的难受
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方法的名字出现了问题

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、项目


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

在这里插入图片描述
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/25554.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

reverse入门刷题(6.9)

总结&#xff1a; 拿到附件&#xff0c;先运行看看有没有信息&#xff0c;再查壳&#xff0c;再IDA运行 1.Easy_vb 收获&#xff1a; 使用搜索&#xff1a;在String的时候用的是ctrlf 在IDA_view的时候使用搜索是Aitt 打开IDA&#xff0c;Aitt搜索MCTF&#xff08;关键字即…

文献阅读:Solving olympiad geometry without human demonstrations

文献阅读&#xff1a;Solving olympiad geometry without human demonstrations 1. 文章简介2. 方法介绍 1. Overview2. Symbolic deduce3. Language Model4. 联合使用 3. 实验考察 & 结论 1. 基础实验考察2. 结果分析3. 样例展示 4. 总结 & 思考 文献链接&#xff1a…

看似不同的事情,却是相同的坑

目录 一、背景二、过程1.遭遇战-微盘股的下杀2.不失为一件好事3.一切向后看吧&#xff0c;最近的学习感受4.该有的心境 三、总结 一、背景 也在一点点改变&#xff0c;期间势必要经历流血的过程&#xff1b;所谓无疯狂不成长&#xff0c;积极的心态去应对&#xff0c;去总结总…

引入Springcloud--Sleuth-链路追踪中MDC是如何获取到traceid和何时放入traceid的

在分布式项目中需要引入 spring-cloud-starter-sleuth框架来记录跟踪请求在不同服务之前流转的路径。在整个流转路径通过traceid将所有的路径给串联起来。 项目中需要保存traceid来实现日志快速搜索和定位&#xff0c;可以通过MDC.get("traceId")获取到traceId。 …

评书下载到u盘,下载到内存卡,下载到手机或电脑的方法

评书下载的方法有很多种&#xff0c;无论是通过什么方法&#xff0c;我们都可以快速的获取喜爱的评书。下面将详细介绍常见的评书下载方法&#xff0c;帮助您快速上手。 1、搜索“十方评书网”。 2、要下载那个评书家的选择那个评书家就可以。 3、点击进去后可以一键下载单部评…

Elasticsearch中各种query的适用场景

Elasticsearch 提供了丰富的 Query 类型&#xff0c;以满足各种搜索需求。以下列举一些常见的 Query 类型&#xff0c;并分析其区别和应用场景&#xff1a; 一、 几个常用的基本Query 1. Term Query 应用场景: 查找包含特定词语的文档&#xff0c;适合精确匹配单个词语的场景…

【SpringBoot + Vue 尚庭公寓实战】标签和配套管理接口实现接口实现(六)

【SpringBoot Vue 尚庭公寓实战】标签和配套管理接口实现接口实现&#xff08;六&#xff09; 文章目录 【SpringBoot Vue 尚庭公寓实战】标签和配套管理接口实现接口实现&#xff08;六&#xff09;1、保存或更新标签信息2、根据id删除标签信息3、根据类型查询配套列表4、新…

Aptos Builder Jam 亚洲首站|见证 Aptos 公链 2024 年新突破

4 月下旬的「TinTin DESTINATION MOON」杭州站活动让我们构建下一个 Web3 巅峰的项目生态行动与未来战略。时隔三个月&#xff0c;「TinTin DESTINATION MOON」Aptos 线下活动将再次来到杭州&#xff0c;为 Aptos Builder Jam 亚洲首站火热造势&#xff0c;7 月 6 日诚邀 Web3 …

vue2中如何动态渲染组件

vue2中如何动态渲染组件 动态渲染组件代码解读通过函数调用渲染组件 封装一个函数调用的二次确认弹窗如何让外部知道用户点击了取消还是确定呢&#xff1f; 思考小结 vue2 的项目中&#xff0c;main.js 文件中有一个挂载 App.vue 组件的方法&#xff1a; new Vue({name: Root,…

工程师 - 什么是EMI测试

一、EMC EMI EMS定义&#xff1a; EMC&#xff08;ElectromagneticCompatibility&#xff09; 电磁兼容&#xff0c;是指设备或系统在电磁环境中性能不降级的状态。电磁兼容&#xff0c;一方面要求系统内没有严重的干扰源&#xff0c;一方面要求设备或系统自身有较好的抗电磁…

5G发牌五周年丨移远通信:全面发力,加快推进5G技术服务社会发展

2024年6月6日&#xff0c;正值中国5G商用牌照发牌五周年。根据移动通信“十年一代”的规律&#xff0c;5G已走过一半征程。在过去的五年时间里&#xff0c;5G技术从萌芽到成熟&#xff0c;深刻改变了工业、农业、医疗及消费端等各个领域的发展脉络。无论是无人机配送、自动驾驶…

【LeetCode】两数相加(基于单向链表)难度:中等

目录 理清题目 解题思路 题目代码 运行结果 我们来看一下题目描述&#xff1a; 理清题目 首先题目要求链表中的节点的值必须在[0,9]之间也就是说我们要处理的数字必为正整数&#xff0c;因此就不会涉及到太复杂的计算&#xff0c;题目其实就是要求对两个链表中的节点的值分…

详解 Flink 的状态管理

一、Flink 状态介绍 1. 流处理的无状态和有状态 无状态的流处理&#xff1a;根据每一次当前输入的数据直接转换输出结果的过程&#xff0c;在处理中只需要观察每个输入的独立事件。例如&#xff0c; 将一个字符串类型的数据拆分开作为元组输出或将每个输入的数值加 1 后输出。…

台积电代工!Intel新AI PC芯片Lunar Lake发布:AI算力120TOPS!

根据英特尔披露的数据显示&#xff0c;Lunar Lake的GPU性能提升50%、NPU内核的AI算力增加了四倍、SoC耗电量减少40%、GPU AI算力增加3.5倍&#xff0c;整个SoC的算力超过了120TOPS。 6月4日&#xff0c;英特尔CEO帕特基辛格在COMPUTEX 2024上发表主题演讲&#xff0c;正式公布…

如何确保redis缓存中的数据与数据库一致

一、双写模式&#xff1a; 在写入数据库时&#xff0c;也写入缓存。 二&#xff1a;失效模式&#xff1a; 在写入新数据后&#xff0c;删除缓存中数据&#xff0c;下次请求时查询数据库&#xff0c;并把查到的最新数据写入缓存。 不管是双写模式还是失效模式&#xff0c;缓…

Letcode-Top 100二叉树专题

94. 二叉树的中序遍历 方法一&#xff1a;递归法 /*** Definition for a binary tree node.* public class TreeNode {* int val;* TreeNode left;* TreeNode right;* TreeNode() {}* TreeNode(int val) { this.val val; }* TreeNode(int val, TreeN…

SpringBoot的学习要点

目录 SpringBoot 创建项目 配置文件 注解 命名规范 SpringBoot整合第三方技术 …… 中文文档&#xff1a;Spring Boot 中文文档 SpringBoot Spring Boot 是基于 Spring 框架的一种快速构建微服务应用的方式它主要提供了自动配置、简化配置、运行时应用监控等功能它…

大水文之------端午练练JS好了

最近有点不太知道要干啥了&#xff0c;昨天看了集cocos的介绍&#xff0c;下载了个DashBoard&#xff0c;看了看里面的内容&#xff0c;确实有点小震惊&#xff0c;还有些免费的源码可以学习&#xff0c;挺好的。 昨天学习ts&#xff0c;感觉自己的js水平好像不太行&#xff0c…

Functional ALV系列 (10) - 将填充FieldCatalog封装成函数

在前面的博文中&#xff0c;已经讲了封装的思路和实现&#xff0c;主要是利用 cl_salv_data_descr>read_structdescr () 方法来实现。在这里&#xff0c;贴出代码方便大家参考。 编写获取内表组件的通用方法 form frm_get_fields using pt_data type any tablechanging…

C++期末复习提纲(血小板)

目录 1.this指针 2.静态成员变量 3.面向对象程序设计第一阶段 4.面向对象程序设计第二阶段 5.面向对象程序设计第三阶段 6.简答题 &#xff08;1&#xff09;拷贝构造函数执行的三种情况&#xff1a; &#xff08;2&#xff09;虚析构函数的作用&#xff1a; &#xff…