一. 项目概述:
通过对一些高校的了解和相关资料的搜索得知,目前学院在进行宿舍的管理工作中,往往由于缺乏对所需数据的科学化记录保存、处理,所以,一般整个处理过程需大量的人力物力,效率不高。而且,在管理、收集学生资料的过程中,往往会受到较多不必要的人为因素的影响而阻碍到整个管理工作的顺利开展,造成了资料的遗失或记录出错。再者,平时这些综合数据不能及时反馈给学生本人,造成了学生思想的误解。于是我们想开发一个基于局域网和移动通讯的、功能齐全、使用方便的系统,让宿舍的管理员方便的录入、统计、管理学生宿舍的入住情况;让学校的老师及时地了解到学生宿舍的分配和入住等基本情况;让学生本人能够及时的查询到本人的注册、缴费、宿舍评比等情况
二. 系统功能描述:
三. 数据表设计:
数据库名:StudentDormSystem
数据库表名如下:
用户表(UserInfo)
属性名 | 数据类型 | 约束 |
用户编号(UserID) | Char(5) | primary key not null |
用户姓名(UserName) | varchar(20) | not null |
密码(UserPwd) | varchar(20) | not null |
性别(UserSex) | varchar(10) | not null |
级别(UserLevel) | varchar(20) | not null |
地址(UserAddress) | varchar(50) | not null |
联系电话(UserPhone) | Char(20) | not null |
学生信息表(StuInfo)
属性名 | 数据类型 | 约束 |
学号(StuID) | Char(20) | primary key not null |
密码(StuPwd) | Char(20) | not null |
姓名(StuName) | varchar(20) | not null |
性别(StuSex) | varchar(10) | not null |
政治面貌(StuGov) | varchar(20) | not null |
系别(StuDepartment) | varchar(50) | not null |
班级(StuClass) | varchar(50) | not null |
地址(StuAddress) | varchar(50) | not null |
电话(StuPhone) | Char(20) | not null |
学生寝室表(StuDorm)
属性名 | 数据类型 | 约束 |
学号(StuID) | Char(20) | primary key not null |
姓名(StuName) | varchar(20) | not null |
寝室(DormNum) | Char(10) | not null |
床位(BedNum) | Char(3) | not null |
入住日期(EnterDate) | Char(20) | not null |
是否舍长(DormMaster) | Char(5) | not null |
学期注册表(TermRegister)
属性名 | 数据类型 | 约束 |
学号(StuID) | Char(20) | primary key not null |
姓名(StuName) | varchar(20) | not null |
寝室(StuDorm) | Char(10) | not null |
季度(Quarter) | Char(20) | not null |
交费(Tuition) | Char(10) | not null |
情况(Status) | Char(50) | not null |
注册日期(RegisterDate) | Char(20) | not null |
欠费数值(OweNum) | int | not null |
寝室表(Dorm)
属性名 | 数据类型 | 约束 |
寝室号(DormNum) | Char(10) | primary key not null |
应住人数(AllStu) | int | not null |
现住人数(NowStu) | int | not null |
居住性别(DormSex) | Char(5) | not null |
价格(DormPrice) | Char(5) | not null |
状态(DormStatus) | Char(5) | not null |
寝室电话(DormPhone) | Char(20) | not null |
来访表(Callin)
属性名 | 数据类型 | 约束 |
来访人姓名(CallinName) | varchar(20) | primary key not null |
被访人姓名(CallName) | varchar(20) | not null |
被访人寝室号(CallDorm) | Char(10) | not null |
所属关系(Relation) | varchar(20) | not null |
证件名称(CerName) | varchar(20) | not null |
证件号码(CerNum) | varchar(20) | not null |
值班人(Watch) | varchar(20) | not null |
来访时间(CallDate) | Char(20) | not null |
结束时间(EndDate) | Char(20) | |
来访日期(EndTime) | Char(20) | not null |
货物出楼表(GoodsOut)
属性名 | 数据类型 | 约束 |
寝室号(DormNum) | Char(10) | primary key not null |
姓名(StuName) | varchar(20) | not null |
证件名称(CerName) | varchar(20) | not null |
证件号码(CerNum) | varchar(20) | not null |
出楼货物(GoodsName) | varchar(20) | not null |
值班人(Watch) | varchar(20) | not null |
出楼时间(OutTime) | Char(20) | not null |
出楼日期(OutDate) | varchar(20) | not null |
水电收费标准(WeCharge)
属性名 | 数据类型 | 约束 |
代号(Code) | Char(10) | primary key not null |
名称(Name) | Char(10) | not null |
单价(UnitPrice) | Int | not null |
免费量(FreeQuantity) | Int | not null |
单位(Unit) | Char(10) | not null |
寝室评分表(DormGrade)
属性名 | 数据类型 | 约束 |
寝室号(DormNum) | Char(10) | primary key not null |
评分(Grade) | int | not null |
学期(Term) | Char(30) | not null |
第几周(Week) | Char(30) | not null |
物品维修表(GoodsService)
属性名 | 数据类型 | 约束 |
代号(Code) | Char(20) | primary key not null |
姓名(StuName) | varchar(20) | not null |
寝室号(DormNum) | Char(10) | not null |
维修物品(ServiceGoods) | varchar(50) | not null |
报修日期(ReportTime) | Char(20) | not null |
维修费(Upkeep) | Char(10) | not null |
维修日期(ServiceDate) | Char(20) | |
备注(Remark) | varchar(50) |
水电费金额表(WeChargeSum)
属性名 | 数据类型 | 约束 |
寝室号(DormNum) | Char(10) | primary key not null |
年(SumYear) | Char(10) | not null |
月(SumMonth) | Char(10) | not null |
抄表日期(ReportDate) | Char(20) | not null |
水表底数(WaterStart) | int | not null |
水表现数(WaterNow) | int | not null |
水费(WaterRate) | int | not null |
电表底数(AmmeterStart) | int | not null |
电表现数(AmmeterNow) | Int | not null |
电费(EleRate) | Int | not null |
费用合计(RateSum) | Int | not null |
老师资料表(Teacher)
属性名 | 数据类型 | 约束 |
代号(TeacherID) | Char(10) | primary key not null |
密码(TeacherPwd) | Char(20) | not null |
姓名(TeacherName) | Char(10) | not null |
电话号码(TeacherPhone) | Char(15) | not null |
班别(TeacherClass) | Char(20) | not null |
系主任资料表(DepartmentHead)
属性名 | 数据类型 | 约束 |
代号(HeadID) | Char(10) | primary key not null |
密码(HeadPwd) | Char(20) | not null |
姓名(HeadName) | Char(10) | not null |
电话号(HeadPhone) | Char(15) | not null |
班别(HeadClass) | Char(20) | not null |
商品(Product)
属性名 | 数据类型 | 约束 |
商品(Product) | Char(10) | primary key not null |
类别(Sort) | Char(10) | not null |
价格(Price) | float | not null |
我用的是Navicat for MySQL建的数据库:
四. 建包:
我用的是eclipse开发的,先建好需要用到的包:
1. cn.Dao 用来存放专门用来封装我们对于实体类的数据库的访问,就是增删改查,不加业务逻辑。
2 .cn.model 用来存放与数据库对应的实体类
3. cn.Util 用来存放我们需要用到的方法
4. cn.View.manager 实现管理员功能
5. cn.View.User 实现普通用户功能
6. Image 存放项目需要的照片
导入JDBC驱动,然后完成数据库的连接:
五. 连接数据库:
然后在cn.Util中创建DateUtil.java,连接数据库,完成数据库连接后测试一下:
package cn.Util;
import java.sql.Connection;
import java.sql.DriverManager;
/**
* 数据库工具类
* @author 86185
*
*/
public class DbUtil {
private String DbUrl="jdbc:mysql://localhost:3306/StudentDormSystem?serverTimezone=GMT%2B8";
private String dbusername="root";//用户名
private String dbpassword="232818";//密码
private String jdbcname="com.mysql.cj.jdbc.Driver";//驱动名称
/**
* 获取数据库链接
* @return
* @throws Exception
*/
public Connection getCon() throws Exception{
Class.forName(jdbcname);
Connection con=DriverManager.getConnection(DbUrl, dbusername, dbpassword);
return con;
}
/**
* 关闭数据库
* @param con
* @throws Exception
*/
public void closecon(Connection con) throws Exception{
if(con!=null) {
con.close();
}
}
/**
* 检验数据库连接
* @param args
*/
public static void main(String[] args) {
DbUtil dbutil=new DbUtil();
try {
dbutil.getCon();
System.out.println("数据库连接成功");
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
System.out.println("数据库连接失败");
}
}
}