目次
3.4.3 寮管理者データディクショナリ(テーブル名: Dormmanager)
第 1 章 はじめに
1.1 プロジェクト研究の背景
学生寮の管理システムは学校にとって欠かせないものです。現時点では、寮管理者による手動記録はまだ初期段階にある学校が多く、小規模校ではかろうじて許容できるが、学生情報が多く必要なデータ量が多い大学では手動記録が可能である。手動で記録するのは非常に面倒です。また、あるレコードを探す場合、データ量が膨大なため、一つ一つ手動で検索するしかなく、面倒なだけでなく、多くの時間を無駄にし、効率が比較的低いです。現代社会は日進月歩の世界であり、本来の記録方法は社会から排除され、コンピューター管理は時代に適応した結果です。情報の世界は決して平和な世界ではなく、技術が需要を満たせなくなると、古い技術に取って代わる新しい技術が生まれます。21世紀の今日、情報化社会が主流となり、あらゆる分野でコンピュータの利用が普及し、自動化や情報管理がさまざまな分野でますます普及しています。私たちはそのために学生寮管理システム一式を設計しました。学生寮管理システムはコンピュータ管理を採用しており、管理者はシステムのデータベースにデータを入力するだけで利用者に利便性を感じていただけるよう、可能な限り人間化されたシステムとなっています。データベースの保存容量は非常に大きく、比較的安定しているため、長期保存に適しており、紛失しにくいです。これは間違いなく、比較的大量の情報ストレージを持つ学校にとって便利で高速な操作方法を提供します。このシステムは、実行速度が速く、セキュリティが高く、安定性が良いという利点があり、完璧なレポート作成および修正機能を備えており、学校が必要とする宿泊施設情報を迅速に照会できます。学生寮は、大学生がキャンパス内で学び、生活し、コミュニケーションを図るための重要な空間環境であり、大学生は約3分の2の時間を寮環境で過ごします。大学の規模の拡大に伴い、学生の学力レベル、思想状態、文化レベルは多様化、複雑化しており、学生管理業務に多くの新たな問題をもたらしている。学生数の増加に伴い、大学における学生寮の管理における情報量は増加していますが、現在、本校の学生寮の管理は、依然として伝統的な作業方法である書籍ベースの作業モードを採用しています。このモードは、情報の入手が遅く、相談が難しく、正確性が低く、高度な寮管理のニーズに適応することが難しく、同時に多くの人的資源の無駄が発生し、寮の管理業務には大変ご迷惑をおかけいたしました。これを踏まえ、私たちは寮の管理効率を向上させ、管理方法を改善し、現代の情報化の流れに即した「学生寮管理システム」の開発の必要性を考えました。データベースの記憶容量は非常に大きく、比較的安定しているため、長期保存に適しており、紛失しにくいです。これは間違いなく、比較的大量の情報ストレージを持つ学校にとって便利で高速な操作方法を提供します。
1.2 プロジェクトの選定と目的の意義
学生寮管理システムをテーマに選んだユーザーは、管理者がシステムのデータベースにデータを入力するだけで済むので、操作が非常に便利であると感じるでしょう。データベースの保存容量は非常に大きく、比較的安定しているため、長期保存に適しており、紛失しにくいです。これは間違いなく、比較的大量の情報ストレージを持つ学校にとって便利で高速な操作方法を提供します。このシステムは、実行速度が速く、セキュリティが高く、安定性が良いという利点があり、完璧なレポート作成および修正機能を備えており、学校が必要とする宿泊施設情報を迅速に照会でき、大学による学生寮の管理を容易にします。
1.3 プロジェクト研究の目的と要件
全体的な目標: 学生寮管理システムの開発に成功すること。学生寮情報の照会・追加・削除など、管理に便利で省力化できる機能を実現します。
課題と要件:管理目的を達成するために寮管理システムを運用できる。要件: 美しいインターフェイス、追加、削除、クエリなどの完全な機能。
第 2 章 実現可能性分析と需要分析
2.1 実現可能性の分析
2.1.1 運用の実現可能性
OSはWindows10を採用しており、インターネット時代を迎えた人にとっては比較的操作が簡単で、操作性も実現可能です。
2.1.2 技術的な実現可能性
このシステムは spring + springmvc などの技術を組み合わせて開発されており、技術的には実現可能です。インターフェイスの開発には、現在人気のフレームワークBootstrapを使用しており、操作性が高く、操作や開発が容易です。データベースに関しては、セキュリティの面で保証されている mysql が使用されており、mysql の方が移植性に優れています。
2.1.3 設計の実現可能性
本システムの設計は、ページ表示、ビジネスロジック処理、データアクセスをうまく分割できるMVCモデルを採用しており、各レベル間の結合度が低いため、プロジェクトおよびシステム全体の分割の柔軟性が大幅に向上します。比較的すっきりしているのでデザイン的にも実現可能です。
2.2 需要分析
学生寮の管理システムは学校にとって欠かせないものです。現時点では、寮管理者による手動記録はまだ初期段階にある学校が多く、小規模校ではかろうじて許容できるが、学生情報が多く必要なデータ量が多い大学では手動記録が可能である。手動で記録するのは非常に面倒です。また、あるレコードを探す場合、データ量が膨大なため、一つ一つ手動で検索するしかなく、面倒なだけでなく、多くの時間を無駄にし、効率が比較的低いです。現代社会は日進月歩の世界であり、本来の記録方法は社会から排除され、コンピューター管理は時代に適応した結果です。情報の世界は決して平和な世界ではなく、技術が需要を満たせなくなると、古い技術に取って代わる新しい技術が生まれます。21世紀の今日、情報化社会が主流となり、あらゆる分野でコンピュータの利用が普及し、自動化や情報管理がさまざまな分野でますます普及しています。私たちはそのために学生寮管理システム一式を設計しました。
2.2.1 処理対象の分析
システムが処理する対象は、学生の基本情報、寮の基本情報、寮の建物の基本情報、建物管理者の基本情報、来訪者の基本情報であり、各対象の情報は以下のとおりです。
1. 学生の基本情報(学生):学生番号、学生の名前、学生の性別、学生のチェックインと転出、学生の年齢、学生の電話番号などを含み、学生情報の照会と更新を容易にします。
2. 寮生の基本情報(寮):学籍番号、学生名、建物番号、寮の部屋、寮連絡先など。
3. 寮の基本情報(建物):寮の建物番号、寮の建物の性別分類情報、管理者名などを含み、寮の建物の管理を容易にし、クエリの効率を向上させることができます。
4. 建物管理者(教師)の基本情報:スタッフ番号、スタッフ名、性別、勤務寮、電話番号など。管理者による寮管理者の任命、情報照会、変更を容易にします。
2.2.2 機能要件の分析
システムは主に次の機能を実行します。
1. 寮の建物の基本情報を照会および変更します。
2. 学生の基本情報をクエリ、更新、および挿入します。
3. 各寮棟の寮情報の照会・更新。
(1) 寮情報管理システムは、学生および管理者の全ての情報の閲覧を実現するもの、学生および管理者の特定の情報の閲覧を実現するものである。
(2) 個人情報の削除を実現する。
4. 寮棟の入居者の入退去記録。
2.2.3 セキュリティと完全性の分析
セキュリティは最初にビュー メカニズムを通過し、さまざまなユーザーはシステムによって承認されたビューにのみアクセスできます。これにより、システム データにある程度のセキュリティが提供されます。その後、ユーザー承認メカニズムを通じて、ユーザーは、ユーザーを識別するためにログインする必要があります。ユーザー レベルを設定し、このレベルに応じてユーザーを割り当てる権限により、より高いレベルのデータ セキュリティと機密性機能を実現できます。
完全性要件は、寮の建物の基本情報、学生の基本情報、寮の基本情報、建物管理者の基本情報、およびユーザー定義の完全性 (実際の要件に沿った) を記述するために使用されます。
第3章システム設計
3.1 システムアーキテクチャ図
3.2 ER図
ER をリレーショナル モデルに組み込む
ビル管理者: dormmanager ( uresname、password、stuName、性別)
寮管理: 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 寮生用データ辞書(テーブル名:学生)
属性名 |
フィールド名 |
タイプ |
長さ |
制約 |
学籍番号 |
スタナム |
バーチャー |
20 |
主キー |
パスワード |
パスワード |
バーチャー |
20 |
Null ではありません |
名前 |
名前 |
バーチャー |
20 |
Null ではありません |
性別 |
セックス |
バーチャー |
4 |
Null ではありません |
寮棟番号 |
寮ビルドID |
内部 |
6 |
Null ではありません |
チェックイン番号 |
スタナム |
バーチャー |
20 |
Null ではありません |
寮番号 |
寮名 |
バーチャー |
20 |
Null ではありません |
連絡先 |
電話番号 |
バーチャー |
20 |
Null ではありません |
3.4.2 寮データディクショナリ(テーブル名:drom)
属性名 |
フィールド名 |
タイプ |
長さ |
制約 |
寮番号 |
下 |
Varchar2 |
6 |
主キー |
寮 |
Dビルド |
Varchar2 |
10 |
Null ではありません |
3.4.3 寮管理者データディクショナリ(テーブル名: Dormmanager)
属性名 |
フィールド名 |
タイプ |
長さ |
制約 |
ホストのユーザー名 |
ユーザー名 |
バーチャー |
20 |
主キー |
ログインパスワード |
パスワード |
バーチャー |
20 |
Null ではありません |
住居管理棟番号 |
寮ビルドID |
整数 |
4 |
Null ではありません |
学生の名前 |
名前 |
バーチャー |
6 |
Null ではありません |
性別 |
セックス |
バーチャー |
20 |
Null ではありません |
連絡先 |
電話番号 |
バーチャー |
20 |
Null ではありません |
3.4.4 ユーザデータ辞書(テーブル名:レコード)
属性名 |
フィールド名 |
タイプ |
長さ |
制約 |
欠席学生番号 |
学籍番号 |
バーチャー |
20 |
主キー |
欠席学生の名前 |
学生の名前 |
バーチャー |
30 |
Null ではありません |
寮棟番号 |
寮ビルドID |
内部 |
4 |
Null ではありません |
寮番号 |
寮名 |
バーチャー |
6 |
Null ではありません |
日にち |
日にち |
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();
}
}
源码以及数据库文件获取
请到我的主页中心下载 都是大学生 大家互帮互助 现在是免费的呢 感谢大家的支持!