当前位置 博文首页 > 搬砖小菜~的博客:Java+SQL server 学生宿舍管理系统 数据库课程

    搬砖小菜~的博客:Java+SQL server 学生宿舍管理系统 数据库课程

    作者:[db:作者] 时间:2021-06-16 09:15

    题目:

    此次课程设计的题目是学生宿舍管理系统

    工具:

    数据库用的是SQL server;IDE用的是eclipse

    一、系统功能基本要求

    为了便于对学生宿舍生活的管理,学生资料的管理,和快节奏、高效率的工作环境。我本次设计的课题是学生宿舍管理系统。
    开发目的和意义:
    A.管理学生宿舍信息达到安全、高效、方便效果
    B.迅速查到所需学生、楼栋、宿舍、宿舍物品、宿舍维修等信息
    C.学生宿舍管理系统便于管理人员办事效率越来越高
    系统的作用:
    A.要求用户必须输入正确的用户名和密码才可以进入系统
    B.提供学生住宿情况、楼栋、宿舍、宿舍物品、宿舍维修的基本登记
    C.可对上述的宿舍相关信息进行增删查改并统计
    基本功能
    A.宿舍信息维护:对宿舍信息进行添加、修改、删除,具体宿舍信息包括:宿舍编号、宿舍电话、应住人数、录入日期等信息;
    B.宿舍信息查询:根据楼号、宿舍编号进行查询。具体包括:宿舍编号、应住人数、实住人数、空位数、宿舍电话、录入日期等信息;
    C.宿舍信息统计:对楼号、房间数、应住人数、实住人数、空位数等进行统计并输出。

    二、功能模块设计

    本宿舍管理系统通过管理员登录系统后,进行对学生信息、楼栋信息、宿舍信息、物品信息、维修信息,基本信息等进行管理(如图所示)
    在这里插入图片描述

    三、数据库概念结构设计

    (分析系统中有哪些实体,实体之间存在怎样的联系,用文字描述,并绘制实体图和整体E-R图)
    答:实体为楼栋、宿舍、学生、宿舍物品
    楼栋实体图
    (分析系统中有哪些实体,实体之间存在怎样的联系,用文字描述,并绘制实体图和整体E-R图)
    答:实体为楼栋、宿舍、学生、宿舍物品
    楼栋实体图
    在这里插入图片描述

    宿舍实体图
    在这里插入图片描述

    学生实体图
    在这里插入图片描述

    宿舍物品实体图
    在这里插入图片描述

    整体E-R图
    在这里插入图片描述

    四、数据库关系图

    在这里插入图片描述

    五、数据库及表结构的创建

    在这里插入图片描述
    dbo.LgTbl

    create table LgTbl
    (
    	usrName char(10),
    	usrPwd char(10) 
    )
    

    dbo.Build

    create table Build
    (
    	Bno char(4) primary key	not null,  --楼号-学3
    	Bfloors_sum char(4) , --楼层数-6层
    	Broom_sum char(4) , --宿舍数-30间
    	Build_men int , --总人数-1066人
    	build_sex char(6) ,	--男/女宿舍-男生宿舍
    	inputtime char(11)  --2021-02-01
    )
    

    dbo.Room

    create table Room
    (
    	Bno char(4)  not null, --楼号 -A
    	Rno char(6) not null , --宿舍号 -606
    	Rymen int ,  --宿舍几人间 -6人间
    	Rphone char(11),  --宿舍电话- 13672355529
    	inputtime char(11) , --2021-02-01
    	primary key(Rno,Bno),
    	foreign key(Bno) references Build(Bno),
    )
    

    dbo.Student

    create table Student 
    (
    	Sno char(12) primary key  not null,  --学号 -201955555500
    	Sname char(8) , --姓名-牛大春
    	Ssex char(2) , --性别 -男
    	Sdept char(10) , --专业 -自动化
    	Bno char(4) not null,  --楼号 -学3
    	Rno char(6) not null ,  --宿舍号 -608
    	inputtime char(11) ,  --2021-02-01
    	foreign key(Bno) references Build(Bno),
    )
    

    dbo.Goods

    create table Goods
    (
    	Pno char(3) primary key,  --物品号
    	Pname char(10)  --物品名称
    )
    

    dbo.Repair

    create table Repair
    (
    	Bno char(4) not null,  
    	Rno char(6) not null ,  
    	Pno char(3) not null,
    	Rsubmit char(10), --提交日期
    	Rsolove char(10),  --解决日期
    	Rreason char(20),   --维修原因
    	primary key(Bno,Rno,Pno),
    	foreign key(Bno) references Build(Bno),
    	foreign key(Pno) references Goods(Pno),	
    )
    

    六、系统主要功能界面

    • 主要功能界面

    • 管理员登录
      在这里插入图片描述

    • 查询所有学生的宿舍信息
      在这里插入图片描述

    • 查询所有楼栋信息
      在这里插入图片描述

    • 统计各楼栋宿舍的实住人数及应住人数
      在这里插入图片描述

    • 统计各楼栋的宿舍总数及实住宿舍及实住人数及应住人数
      在这里插入图片描述
      此处不再一一截出来了

    七、系统部分代码

    JDBCUnit.java

    package room_system;
    
    import java.security.PublicKey;
    import java.sql.*;
    
    public class JDBCUnit {
        /* 驱动,定义连接数据库类型:SQL SERVER2012*/
        private static String driverName="com.microsoft.sqlserver.jdbc.SQLServerDriver";//驱动:com.microsoft.sqlserver.jdbc.SQLServerDriver
        public static String SerName;		//服务器名字:127.0.0.1
        public static String Dbname;		//数据库名:room_system
        public static String userName;		//用户名:sa
        public static String userPwd;	//密码:123456
    
        public static Connection getConnection(){
            String dbURL="jdbc:sqlserver://127.0.0.1:1433;DatabaseName=room_system";
            Connection conn = null;
            try {
                //1.注册驱动
                Class.forName(driverName);
                //2.建立连接
                conn = DriverManager.getConnection(dbURL, "sa", "123456");
            } catch (Exception e) {
                e.printStackTrace();
            }
            return conn;
        }
        /**
         * 使用statement对象执行DML语句
         */
        public static void stmt_DML(String sql) {
            Connection conn = null;
            Statement stmt = null;
            try {
                conn =  getConnection();
                //1.创建Statement对象
                stmt = conn.createStatement();
                //2.执行sql语句
                stmt.execute(sql);
                //3.关闭资源
                stmt.close();   //关闭数据执行结果集合
                conn.close();   //关闭数据库连接
            }
            catch (Exception e) {
                e.printStackTrace();
            }
        }
    
        /**
         * 使用PreparedStatement执行SQL语句
         */
        public static void ps_DML(String sql,ResultSet rs) {
    
            try
            {
                Connection conn = getConnection();
                PreparedStatement ps = conn.prepareStatement(sql);
                //4.操作结果集
                rs=ps.executeQuery();
                //5.关闭资源
                ps.close();
                conn.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
    
        /**
         * 判断登录用户是否存在
         */
        public static boolean login_flag(String usrName,String usrPwd) {
            String sql= "select * from  LgTbl where usrName="+"'"+usrName+"'"+" and usrPwd= "+"'"+usrPwd+"'";
            boolean flag=false;
            try
            {
                Connection conn = getConnection();
                PreparedStatement ps = conn.prepareStatement(sql);
                ResultSet rs = ps.executeQuery();
                if(rs.next()) {
                    flag = true;
                }
                else {
                    flag = false;
                }
                rs.close();
                ps.close();
                conn.close();
            } catch (Exception e)
            {
                e.printStackTrace();
            }
            return  flag;
        }
    
    
        /**
         * 判断查询输入学号Sno结果是否为空
         */
        public static boolean select_flag(String Sno) {
            String sql= "select Sno from  Student where Sno=ltrim(rtrim("+"'"+Sno+"'))";
             boolean flag