数据库系统实现 大学生宿舍管理系统

目录

目录

第一章绪论

1.1项目研究的背景

第二章可行性分析与需求分析

2.1可行性分析

2.1.1操作可行性

2.1.2技术可行性

2.1.3设计可行性

2.2需求分析

2.2.1处理对象分析

2.2.2功能需求分析

2.2.3安全性与完整性分析

第三章系统设计

3.1系统架构图

3.2 E-R图

3.3 数据结构

3.3.1 用户信息结构

3.3.2 学生信息结构

3.3.3 宿舍信息结构

3.3.4 缺勤信息结构

3.4 数据字典

3.4.1住宿学生数据字典(表名:student)

3.4.2 宿舍数据字典(表名:drom)

3.4.3 宿舍管理员数据字典(表名:dormmanager)

3.4.4 用户数据字典(表名:record)

3.5 数据库的设计

第四章系统实现与设计内容

4.1系统逻辑设计与实现

4.2连接数据库功能

4.3 功能模块

第五章 系统实现

5.1页面显示效果

5.1.1登录界面

第六章 测试与部署

6.1 运行环境

6.2 系统测试

附录核心代码实现

第一章 绪论

1.1项目研究的背景

学生宿舍管理系统对于一个学校来说是必不可少的组成部分。目前好多学校还停留在宿舍管理人员手工记录数据的最初阶段,手工记录对于规模小的学校来说还勉强可以接受,但对于学生信息量比较庞大,需要记录存档的数据比较多的高校来说,人工记录是相当麻烦的。而且当查找某条记录时,由于数据量庞大,还只能靠人工去一条条的查找,这样不但麻烦还浪费了许多时间,效率也比较低。当今社会是飞速进步的世界,原始的记录方式已经被社会所淘汰了,计算机化管理正是适应时代的产物。信息世界永远不会是一个平静的世界,当一种技术不能满足需求时,就会有新的技术诞生并取代旧技术。21世纪的今天,信息社会占着主流地位,计算机在各行各业中的运用已经得到普及,自动化、信息化的管理越来越广泛应用于各个领域。我们针对如此,设计了一套学生宿舍管理系统。学生宿舍管理系统采用的是计算机化管理,系统做的尽量人性化,使用者会感到操作非常方便,管理人员需要做的就是将数据输入到系统的数据库中去。由于数据库存储容量相当大,而且比较稳定,适合较长时间的保存,也不容易丢失。这无疑是为信息存储量比较大的学校提供了一个方便、快捷的操作方式。本系统具有运行速度快、安全性高、稳定性好的优点,并且具备完善的报表生成、修改功能,能够快速的查询学校所需的住宿信息。学生宿舍,是大学生在高校校园里一个重要的学习、生活、交往的空间环境,大学生,大约有2/3的时间是在宿舍环境里度过的。随着高校规模的扩大,在校学生的学历层次、思想状态、文化水平呈多样化、复杂化趋势,这在很大程度上给学生管理工作带来许多新的问题。随着学生人数的增多,高校学生宿舍管理的信息量日益庞大,而目前我校学生宿舍管理仍采用传统的工作方式——账本化的工作模式,这种模式获取信息慢,查阅困难,准确性差,很难适应高水平宿舍管理的需要,同时带来了大量的人力的浪费,对于宿管的工作带来很多不便。基于此,我们想到需要开发一个“学生宿舍管理系统”来提高宿舍的管理效率,改善管理方式,使其与现代信息化的趋势接轨。由于数据库的存储容量相当大,而且比较稳定,适合较长时间的保存,也不容易丢失。这无疑是为信息存储量比较大的学校提供了一个方便、快捷的操作方式。

1.2项目选择与目的意义

选择学生宿舍管理系统作为题目使用者会感到操作非常方便,管理人员需要做的就是将数据输入到系统的数据库中去。由于数据库存储容量相当大,而且比较稳定,适合较长时间的保存,也不容易丢失。这无疑是为信息存储量比较大的学校提供了一个方便、快捷的操作方式。本系统具有运行速度快、安全性高、稳定性好的优点,并且具备完善的报表生成、修改功能,能够快速的查询学校所需的住宿信息,方便高校对学生宿舍的管理。

1.3项目研究的目标与要求

总体目标:成功的研发出学生宿舍管理系统。实现可以查询、添加、删除学生宿舍的信息等功能,便于管理,节省人力。

任务与要求:能运行宿舍管理系统,达到管理的目的。要求:界面美观,添加、删除、查询等功能齐全。

第二章 可行性分析与需求分析

2.1可行性分析

2.1.1操作可行性

本系统使用的操作系统是windows10,对于当今进入互联网时代的人们来说是比较简单操作的,在操作方面是可行的。

2.1.2技术可行性

本系统是由spring + springmvc 等技术结合开发而成的,技术方面是可行的。对于界面的开发使用的是当前流行的框架Bootstrap,在交互方面非常友好,并且易于操作和开发。在数据库方面采用的是mysql,在安全性上有保障,而且mysql的可移植性更强。

2.1.3设计可行性

本系统在设计方面采用的是MVC模式,能够将页面展示,业务逻辑处理,数据访问很好的划分出来,各个层次间的耦合性较低,大大的提高了项目的灵活性,系统的总体划分是比较清晰的,所以在设计方面也是可行的。

2.2需求分析

学生宿舍管理系统对于一个学校来说是必不可少的组成部分。目前好多学校还停留在宿舍管理人员手工记录数据的最初阶段,手工记录对于规模小的学校来说还勉强可以接受,但对于学生信息量比较庞大,需要记录存档的数据比较多的高校来说,人工记录是相当麻烦的。而且当查找某条记录时,由于数据量庞大,还只能靠人工去一条条的查找,这样不但麻烦还浪费了许多时间,效率也比较低。当今社会是飞速进步的世界,原始的记录方式已经被社会所淘汰了,计算机化管理正是适应时代的产物。信息世界永远不会是一个平静的世界,当一种技术不能满足需求时,就会有新的技术诞生并取代旧技术。21世纪的今天,信息社会占着主流地位,计算机在各行各业中的运用已经得到普及,自动化、信息化的管理越来越广泛应用于各个领域。我们针对如此,设计了一套学生宿舍管理系统。

2.2.1处理对象分析

系统要处理的对象包括学生基本信息、宿舍基本信息、宿舍楼基本信息、楼栋管理员基本信息、来访人员出入基本信息等四个方面,各个对象包括信息如下所示:

1.学生基本信息(Student):包括学生学号、学生姓名、学生性别、学生入住与迁出、学生年龄和学生电话等方面的信息,可以方便学生信息的查询和更新;

2.宿舍学生基本信息(Dormitory):包括学生学号、学生姓名、楼栋号、宿舍房间、宿舍联系电话;

3.宿舍基本信息(Building):包括宿舍楼编号、宿舍楼性别分类信息、管理员姓名等方面,这样可以方便管理者对宿舍楼的管理,提高查询效率;

4.楼栋管理员基本信息(Teacher):包括工作人员编号、工作人员姓名、性别、工作宿舍、电话可以方便管理人员对宿舍管理人员的任用、信息查询及更改;

2.2.2功能需求分析

系统主要完成以下几个功能:

1.宿舍楼基本信息查询与修改;

2.学生基本信息查询与更新以及插入;

3.每一幢宿舍楼 中宿舍信息的查询与信息更新;

(1)宿舍信息管理系统实现对学生,管理员信息的全部读取;实现对某个学生或管理员特定信息的读取;

(2)实现对某个人员信息的删除;

4.宿舍楼入住人员的入住与迁出记录;

2.2.3安全性与完整性分析

安全性先通过视图机制,不同的用户只能访问系统授权的视图,这样可提供系统数据一定程度上的安全性,再通过用户授权机制,欲用户登陆来识别用户级别,根据这个级别来分配用户权限,达到数据更高层次的安全保密功能。

完整性要求用于描述宿舍楼基本信息、学生基本信息、宿舍基本信息、楼栋管理员基本信息,以及一些用户自定义完整性(符合实际要求)

第三章 系统设计

3.1系统架构图

3.2 E-R图

E-R转化为关系模型

楼栋管理员:dormmanager(uresname,password,stuName,sex)

宿管:dorm(dormName,dormType,dormNumber,dormTel)

学生:student(stuName,stuNum,dormBuild,dormName,sex)

3.3 数据结构

3.3.1 用户信息结构

3.3.2 学生信息结构

3.3.3 宿舍信息结构

3.3.4 缺勤信息结构

3.4 数据字典

3.4.1住宿学生数据字典(表名:student)

属性名

字段名

类型

长度

约束

学生编号

stuNum

Varchar

20

主键

密码

password

Varchar

20

Not Null

姓名

name

Varchar

20

Not Null

性别

sex

Varchar

4

Not Null

宿舍楼号

dormBuildId

Int

6

Not Null

入住编号

stuNum

Varchar

20

Not Null

宿舍号

dormName

Varchar

20

Not Null

联系方式

tel

Varchar

20

Not Null

3.4.2 宿舍数据字典(表名:drom)

属性名

字段名

类型

长度

约束

宿舍号

Dno

Varchar2

6

主键

宿舍楼

Dbuild

Varchar2

10

Not Null

3.4.3 宿舍管理员数据字典(表名:dormmanager)

属性名

字段名

类型

长度

约束

宿管用户名

userName

Varchar

20

主键

登陆密码

password

Varchar

20

Not Null

宿管栋号

dormBuildId

int

4

Not Null

学生姓名

name

Varchar

6

Not Null

性别

sex

Varchar

20

Not Null

联系方式

tel

Varchar

20

Not Null

3.4.4 用户数据字典(表名:record)

属性名

字段名

类型

长度

约束

缺勤学生编号

studentNumber

Varchar

20

主键

缺勤学生姓名

studentName

Varchar

30

Not Null

宿舍楼号

dormBuildId

Int

4

Not Null

宿舍号

dormName

Varchar

6

Not Null

日期

date

Dat

20

Not Null

缺勤情况

detail

Varchar

20

Not Null

3.5 数据库的设计

(1)系统管理员表

(2)宿舍管理表

(3)宿舍管理表

(4)学生管理表

(5)宿舍管理员表

(6)缺勤记录表

第四章 系统实现与设计内容

4.1系统逻辑设计与实现

4.2连接数据库功能

public class JDBCUtil {
    //获取数据库连接的方法
    public Connection getConn(){
        Connection conn=null;
        try {
            Class.forName(PropertiesUtil.getValue("jdbcName"));
            conn= DriverManager.getConnection(PropertiesUtil.getValue("dbUrl"), PropertiesUtil.getValue("dbUserName"), PropertiesUtil.getValue("dbPassword"));
        } catch (Exception e) {
            e.printStackTrace();
        }
        return  conn;
    }
    //关闭数据库连接、关闭执行对象、关闭结果集对象(关闭资源)
    public void closeAll(ResultSet rs, Statement st,Connection conn){
        if(rs!=null){
            try {
                rs.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
        if(st!=null){
            try {
                st.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
        if(conn!=null){
            try {
                conn.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
}

4.3 功能模块

登陆方式:系统管理员,宿舍管理员,学生

<1> 系统管理员

(1)后台首页显示

(2)宿舍管理员管理:可查询,添加和删除宿舍管理员,宿舍管理员的信息进行修改

(3)学生管理:可对学生进行入住登记,迁出,对学生信息进行查询,修改和删除

(4)宿舍楼管理:可添加宿舍,为宿舍分配宿舍管理员,对分配的宿舍管理员进行修改

(5)学生缺寝记录:记录学生的缺寝情况

(6)修改密码

(7)退出系统

<2> 宿舍管理员

(1)后台首页显示

(2)学生查看

(3)学生缺寝记录:由宿舍管理员登记学生缺寝情况

(4)修改密码

(5)退出系统

<3> 学生

(1)后台首页显示

(2)我的缺勤记录:查看缺寝情况

(3)修改密码

(4)退出系统

第五章 系统实现

5.1页面显示效果

5.1.1登录界面

有三种登录可选择: 1.系统管理员 2.宿舍管理员 3.学生。

(1) 主页面

第六章 测试与部署

6.1 运行环境

Jdk15 IDEA tomcat8.5 mysql Navicat Premium

6.2 系统测试

登录功能测试

系统管理员界面功能测试

(1)宿舍楼管理(首页+添加宿舍楼+添加成功显示页面)

(3)宿舍楼层管理(宿舍楼管理主界面+添加宿舍楼界面+添加成功显示界面)

附录核心代码实现

<%@ page language="java" contentType="text/html; charset=utf-8"
    pageEncoding="utf-8"%>
<%@ page import="com.lero.model.Admin" %>
<%@ page import="com.lero.model.DormManager" %>
<%@ page import="com.lero.model.Student" %>
<%
   if(request.getAttribute("user")==null){
      String userName=null;
      String password=null;
      String userType=null;
      String remember=null;
      
      Cookie[] cookies=request.getCookies();
      for(int i=0;cookies!=null && i<cookies.length;i++){
         if(cookies[i].getName().equals("dormuser")){
            userName=cookies[i].getValue().split("-")[0];
            password=cookies[i].getValue().split("-")[1];
            userType=cookies[i].getValue().split("-")[2];
            remember=cookies[i].getValue().split("-")[3];
         }
      }
      
      if(userName==null){
         userName="";
      }
      
      if(password==null){
         password="";
      }
      
      if(userType==null){
         userType="";
      } else if("admin".equals(userType)){
         pageContext.setAttribute("user", new Admin(userName,password));
         pageContext.setAttribute("userType", 1);
      } else if("dormManager".equals(userType)) {
         pageContext.setAttribute("user", new DormManager(userName,password));
         pageContext.setAttribute("userType", 2);
      } else if("student".equals(userType)) {
         pageContext.setAttribute("user", new Student(userName,password));
         pageContext.setAttribute("userType", 3);
      }
      
      if("yes".equals(remember)) {
         pageContext.setAttribute("remember", 1);
      }
      
   }
%>
<html lang="zh">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>宿舍管理系统登录</title>
<link href="${pageContext.request.contextPath}/bootstrap/css/bootstrap.css" rel="stylesheet">
<link href="${pageContext.request.contextPath}/bootstrap/css/bootstrap-responsive.css" rel="stylesheet">
<script src="${pageContext.request.contextPath}/bootstrap/js/jQuery.js"></script>
<script src="${pageContext.request.contextPath}/bootstrap/js/bootstrap.js"></script>
<script type="text/javascript">
   function checkForm() {
      var userName = document.getElementById("userName").value;
      var password = document.getElementById("password").value;
      var userTypes = document.getElementsByName("userType");
      var userType = null;
      for(var i=0;i<userTypes.length;i++) {
         if(userTypes[i].checked) {
            userType=userTypes[i].value;
            break;
         }
      }
      if (userName == null || userName == "") {
         document.getElementById("error").innerHTML = "用户名不能为空";
         return false;
      }
      if (password == null || password == "") {
         document.getElementById("error").innerHTML = "密码不能为空";
         return false;
      }
      if (userType == null || userType == "") {
         document.getElementById("error").innerHTML = "请选择用户类型";
         return false;
      }
      return true;
   }
</script>

<style type="text/css">
     body {
        padding-top: 200px;
        padding-bottom: 40px;
        background-image: url('images/单车男孩背影是骑士2.jpg');
        background-position: center;
      background-attachment: fixed;
      }
      
      .radio {
       padding-top: 10px;
           padding-bottom:10px;
      }
      
      .form-signin-heading{
       text-align: center;
      }

      .form-signin {
        max-width: 300px;
        padding: 19px 29px 0px;
        margin: 0 auto 20px;
        background-color: #fff;
        border: 1px solid #e5e5e5;
        -webkit-border-radius: 5px;
           -moz-border-radius: 5px;
                border-radius: 5px;
        -webkit-box-shadow: 0 1px 2px rgba(0,0,0,.05);
           -moz-box-shadow: 0 1px 2px rgba(0,0,0,.05);
                box-shadow: 0 1px 2px rgba(0,0,0,.05);
      }
      .form-signin .form-signin-heading,
      .form-signin .checkbox {
        margin-bottom: 10px;
      }
      .form-signin input[type="text"],
      .form-signin input[type="password"] {
        font-size: 16px;
        height: auto;
        margin-bottom: 15px;
        padding: 7px 9px;
      }
</style>

</head>
<body>
<div class="container">
      <form name="myForm" class="form-signin" action="login" method="post" onsubmit="return checkForm()">
        <h2 class="form-signin-heading"><font color="gray">宿舍管理系统</font></h2>
        <input id="userName" name="userName" value="${user.userName }" type="text" class="input-block-level" placeholder="用户名...">
        <input id="password" name="password" value="${user.password }" type="password" class="input-block-level" placeholder="密码..." >
        <label class="radio inline">
          <input id="admin" type="radio" name="userType" value="admin"  checked/> 系统管理员
      </label>
      <label class="radio inline">
         <input id="dormManager" type="radio" name="userType" value="dormManager" ${userType==2?'checked':''} /> 宿舍管理员
      </label>
      <label class="radio inline">
         <input id="student" type="radio" name="userType" value="student"  ${userType==3?'checked':''}/> 学生
      </label>
        <label class="checkbox">
          <input id="remember" name="remember" type="checkbox" value="remember-me" ${remember==1?'checked':''}>记住我     <font id="error" color="red">${error }</font>  
        </label>
        <button class="btn btn-large btn-primary" type="submit">登录</button>
            
        <button class="btn btn-large btn-primary" type="button" >重置</button>

      </form>
</div>
</body>
</html>


package com.lero.dao;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.List;

import com.lero.model.DormBuild;
import com.lero.model.Student;
import com.lero.util.StringTool;

public class StudentDao {

// public List<Student> studentList(Connection con, PageBean pageBean, Student s_student)throws Exception {
//    List<Student> studentList = new ArrayList<Student>();
//    StringBuffer sb = new StringBuffer("select * from t_student t1");
//    if(StringUtil.isNotEmpty(s_student.getName())) {
//       sb.append(" and t1.name like '%"+s_student.getName()+"%'");
//    } else if(StringUtil.isNotEmpty(s_student.getStuNumber())) {
//       sb.append(" and t1.stuNum like '%"+s_student.getStuNumber()+"%'");
//    } else if(StringUtil.isNotEmpty(s_student.getDormName())) {
//       sb.append(" and t1.dormName like '%"+s_student.getDormName()+"%'");
//    }
//    if(s_student.getDormBuildId()!=0) {
//       sb.append(" and t1.dormBuildId="+s_student.getDormBuildId());
//    }
//    if(pageBean != null) {
//       sb.append(" limit "+pageBean.getStart()+","+pageBean.getPageSize());
//    }
//    PreparedStatement pstmt = con.prepareStatement(sb.toString().replaceFirst("and", "where"));
//    ResultSet rs = pstmt.executeQuery();
//    while(rs.next()) {
//       Student student=new Student();
//       student.setStudentId(rs.getInt("studentId"));
//       int dormBuildId = rs.getInt("dormBuildId");
//       student.setDormBuildId(dormBuildId);
//       student.setDormBuildName(DormBuildDao.dormBuildName(con, dormBuildId));
//       student.setDormName(rs.getString("dormName"));
//       student.setName(rs.getString("name"));
//       student.setSex(rs.getString("sex"));
//       student.setStuNumber(rs.getString("stuNum"));
//       student.setTel(rs.getString("tel"));
//       student.setPassword(rs.getString("password"));
//       studentList.add(student);
//    }
//    return studentList;
// }
   
   public List<Student> studentList(Connection con, Student s_student)throws Exception {
      List<Student> studentList = new ArrayList<Student>();
      StringBuffer sb = new StringBuffer("select * from t_student t1");
      if(StringTool.isNotEmpty(s_student.getName())) {
         sb.append(" and t1.name like '%"+s_student.getName()+"%'");
      } else if(StringTool.isNotEmpty(s_student.getStuNumber())) {
         sb.append(" and t1.stuNum like '%"+s_student.getStuNumber()+"%'");
      } else if(StringTool.isNotEmpty(s_student.getDormName())) {
         sb.append(" and t1.dormName like '%"+s_student.getDormName()+"%'");
      }
      if(s_student.getDormBuildId()!=0) {
         sb.append(" and t1.dormBuildId="+s_student.getDormBuildId());
      }
      PreparedStatement pstmt = con.prepareStatement(sb.toString().replaceFirst("and", "where"));
      ResultSet rs = pstmt.executeQuery();
      while(rs.next()) {
         Student student=new Student();
         student.setStudentId(rs.getInt("studentId"));
         int dormBuildId = rs.getInt("dormBuildId");
         student.setDormBuildId(dormBuildId);
         student.setDormBuildName(DormBuildDao.dormBuildName(con, dormBuildId));
         student.setDormName(rs.getString("dormName"));
         student.setName(rs.getString("name"));
         student.setSex(rs.getString("sex"));
         student.setStuNumber(rs.getString("stuNum"));
         student.setTel(rs.getString("tel"));
         student.setPassword(rs.getString("password"));
         studentList.add(student);
      }
      return studentList;
   }
   
   public static Student getNameById(Connection con, String studentNumber, int dormBuildId)throws Exception {
      String sql = "select * from t_student t1 where t1.stuNum=? and t1.dormBuildId=?";
      PreparedStatement pstmt=con.prepareStatement(sql);
      pstmt.setString(1, studentNumber);
      pstmt.setInt(2, dormBuildId);
      ResultSet rs=pstmt.executeQuery();
      Student student = new Student();
      if(rs.next()) {
         student.setName(rs.getString("name"));
         student.setDormBuildId(rs.getInt("dormBuildId"));
         student.setDormName(rs.getString("dormName"));
      }
      return student;
   }
   
   public boolean haveNameByNumber(Connection con, String studentNumber)throws Exception {
      String sql = "select * from t_student t1 where t1.stuNum=?";
      PreparedStatement pstmt=con.prepareStatement(sql);
      pstmt.setString(1, studentNumber);
      ResultSet rs=pstmt.executeQuery();
      Student student = new Student();
      if(rs.next()) {
         student.setName(rs.getString("name"));
         student.setDormBuildId(rs.getInt("dormBuildId"));
         student.setDormName(rs.getString("dormName"));
         return true;
      }
      return false;
   }
   
   public List<Student> studentListWithBuild(Connection con, Student s_student, int buildId)throws Exception {
      List<Student> studentList = new ArrayList<Student>();
      StringBuffer sb = new StringBuffer("select * from t_student t1");
      if(StringTool.isNotEmpty(s_student.getName())) {
         sb.append(" and t1.name like '%"+s_student.getName()+"%'");
      } else if(StringTool.isNotEmpty(s_student.getStuNumber())) {
         sb.append(" and t1.stuNum like '%"+s_student.getStuNumber()+"%'");
      } else if(StringTool.isNotEmpty(s_student.getDormName())) {
         sb.append(" and t1.dormName like '%"+s_student.getDormName()+"%'");
      }
      sb.append(" and t1.dormBuildId="+buildId);
      PreparedStatement pstmt = con.prepareStatement(sb.toString().replaceFirst("and", "where"));
      ResultSet rs = pstmt.executeQuery();
      while(rs.next()) {
         Student student=new Student();
         student.setStudentId(rs.getInt("studentId"));
         int dormBuildId = rs.getInt("dormBuildId");
         student.setDormBuildId(dormBuildId);
         student.setDormBuildName(DormBuildDao.dormBuildName(con, dormBuildId));
         student.setDormName(rs.getString("dormName"));
         student.setName(rs.getString("name"));
         student.setSex(rs.getString("sex"));
         student.setStuNumber(rs.getString("stuNum"));
         student.setTel(rs.getString("tel"));
         student.setPassword(rs.getString("password"));
         studentList.add(student);
      }
      return studentList;
   }
   
   public List<DormBuild> dormBuildList(Connection con)throws Exception {
      List<DormBuild> dormBuildList = new ArrayList<DormBuild>();
      String sql = "select * from t_dormBuild";
      PreparedStatement pstmt = con.prepareStatement(sql);
      ResultSet rs = pstmt.executeQuery();
      while(rs.next()) {
         DormBuild dormBuild=new DormBuild();
         dormBuild.setDormBuildId(rs.getInt("dormBuildId"));
         dormBuild.setDormBuildName(rs.getString("dormBuildName"));
         dormBuild.setDetail(rs.getString("dormBuildDetail"));
         dormBuildList.add(dormBuild);
      }
      return dormBuildList;
   }
   
   public int studentCount(Connection con, Student s_student)throws Exception {
      StringBuffer sb = new StringBuffer("select count(*) as total from t_student t1");
      if(StringTool.isNotEmpty(s_student.getName())) {
         sb.append(" and t1.name like '%"+s_student.getName()+"%'");
      } else if(StringTool.isNotEmpty(s_student.getStuNumber())) {
         sb.append(" and t1.stuNum like '%"+s_student.getStuNumber()+"%'");
      } else if(StringTool.isNotEmpty(s_student.getDormName())) {
         sb.append(" and t1.dormName like '%"+s_student.getDormName()+"%'");
      }
      if(s_student.getDormBuildId()!=0) {
         sb.append(" and t1.dormBuildId="+s_student.getDormBuildId());
      }
      PreparedStatement pstmt = con.prepareStatement(sb.toString().replaceFirst("and", "where"));
      ResultSet rs = pstmt.executeQuery();
      if(rs.next()) {
         return rs.getInt("total");
      } else {
         return 0;
      }
   }
   
   public Student studentShow(Connection con, String studentId)throws Exception {
      String sql = "select * from t_student t1 where t1.studentId=?";
      PreparedStatement pstmt=con.prepareStatement(sql);
      pstmt.setString(1, studentId);
      ResultSet rs=pstmt.executeQuery();
      Student student = new Student();
      if(rs.next()) {
         student.setStudentId(rs.getInt("studentId"));
         int dormBuildId = rs.getInt("dormBuildId");
         student.setDormBuildId(dormBuildId);
         student.setDormBuildName(DormBuildDao.dormBuildName(con, dormBuildId));
         student.setDormName(rs.getString("dormName"));
         student.setName(rs.getString("name"));
         student.setSex(rs.getString("sex"));
         student.setStuNumber(rs.getString("stuNum"));
         student.setTel(rs.getString("tel"));
         student.setPassword(rs.getString("password"));
      }
      return student;
   }
   
   public int studentAdd(Connection con, Student student)throws Exception {
      String sql = "insert into t_student values(null,?,?,?,?,?,?,?)";
      PreparedStatement pstmt=con.prepareStatement(sql);
      pstmt.setString(1, student.getStuNumber());
      pstmt.setString(2, student.getPassword());
      pstmt.setString(3, student.getName());
      pstmt.setInt(4, student.getDormBuildId());
      pstmt.setString(5, student.getDormName());
      pstmt.setString(6, student.getSex());
      pstmt.setString(7, student.getTel());
      return pstmt.executeUpdate();
   }
   
   public int studentDelete(Connection con, String studentId)throws Exception {
      String sql = "delete from t_student where studentId=?";
      PreparedStatement pstmt=con.prepareStatement(sql);
      pstmt.setString(1, studentId);
      return pstmt.executeUpdate();
   }
   
   public int studentUpdate(Connection con, Student student)throws Exception {
      String sql = "update t_student set stuNum=?,password=?,name=?,dormBuildId=?,dormName=?,sex=?,tel=? where studentId=?";
      PreparedStatement pstmt=con.prepareStatement(sql);
      pstmt.setString(1, student.getStuNumber());
      pstmt.setString(2, student.getPassword());
      pstmt.setString(3, student.getName());
      pstmt.setInt(4, student.getDormBuildId());
      pstmt.setString(5, student.getDormName());
      pstmt.setString(6, student.getSex());
      pstmt.setString(7, student.getTel());
      pstmt.setInt(8, student.getStudentId());
      return pstmt.executeUpdate();
   }
   
   
}


源码以及数据库文件获取

请到我的主页中心下载 都是大学生 大家互帮互助 现在是免费的呢 感谢大家的支持!

猜你喜欢

转载自blog.csdn.net/weixin_53251411/article/details/128984093