数据库技术与应用
课程报告
题 目 宿舍管理数据库分析与设计
学生姓名
学 号
学 院
专 业
指导教师
二O一二年五月二十三日
宿舍管理数据库分析与设计
1 引言
学生宿舍管理是当代学校不可或缺的一部分,当今计算机技术飞速发展,数据库是其中重要的一环,建立宿舍管理数据库以逐步摆脱对人工管理的依赖,可以提高学校在宿舍管理部这方面的效率与安全性,也是当今信息化社会的发展趋势。
2 需求说明
2.1 业务要求:
(1)一名来访者可以访问多个学生。
(2)一名学生可以被多个来访者访问。
(3)一名学生只能住在一个宿舍中。
(4)一个宿舍中可以住多名学生。
(5)一名学生可以收取多个快件。
(6)一个快件寄给一名学生
(7)一个宿舍可以被多名管理员管理。
(8)一名管理员可以管理多个宿舍。
(9)一个宿舍可以在多个内务评比住出现。
(10)一次内务评比中可以出现多个宿舍。
(11)对于住宿情况,需要记录下入住时间;并且在学生离返校时需要记录下学生离返校时间,有些学生可能寒暑假不回家,这么做方便更好的管理。
(12)每次有来访者时,需要记录来访者的信息,以及来访时间和离开时间。
(13)有快件时,需要记录快件到达时间,以便管理。
2.2该系统的基本信息:
·学生的基本信息:学号,姓名,性别,系别,专业,班级,联系方式,辅导员
姓名,辅导员联系方式。
·管理员基本信息:员工号,姓名,年龄,性别,职位,联系方式。
·宿舍基本信息:楼号,宿舍号,可住人数,已住人数。
·快件基本信息:楼号,宿舍号,姓名,数量,到达时间。
·来访者基本信息:来访姓名,被访姓名,关系。
·内务基本信息:整洁程度。
2.3除了上述信息外,该系统还需产生如下报表:
·来访者来访信息表:每次有来访者时,给这项报表增加一项信息。内容包括:
来访时间,结束时间,来访者姓名,被访者姓名,被访者学号,关系。
·学生住宿表:每个学生入住时需要记录入住时间,宿舍号等信息。内容包括:
学生学号,宿舍号,姓名,入住时间。
·离返校表:每个学生离返校时需要有一个记录,方便学校管理。内容包括:学
生学号,姓名,楼号,宿舍号,离校时间,返校时间。
·快件收取表:有快件到来时也需要登记。内容包括:学生学号,姓名,楼号,
宿舍号,数量,接收时间。
·宿舍管理表:为了方便管理,需要给出管理员与宿舍之间联系。内容包括:楼
号,宿舍号,管理员号,管理员姓名。
·评比表:记录内务整洁的宿舍名单。内容包括:楼号,宿舍号,整洁程度。
3 数据库结构设计
3.1概念结构设计
本数据库包含如下几个实体:
·学生:用于描述学生基本信息,用学号来标识。
·管理员:用于描述管理员基本信息,用管理员号标识。
·宿舍:用于描述宿舍的基本信息,用楼号和宿舍号标识。
·快件:用于描述快件的基本信息,用楼号,宿舍号和姓名标识。
·来访者:用于描述来访者基本信息,用访者姓名,被访姓名标识。
·内务:用于描述内务的基本信息,整洁程度标识。
在需求分析中已经叙述了实体之间的联系,因此,此数据库ER图如下:
3.2逻辑结构设计
(1)此ER模型关系模式如下,主码用下划线表示:
·学生(学号,姓名,性别,系别,专业,班级,联系方式,辅导员姓名,辅导员联系方式)。
·管理员(员工号,姓名,年龄,性别,职位,联系方式)。
·宿舍(楼号,宿舍号,可住人数,已住人数,入住时间)。
·快件(楼号,宿舍号,姓名,数量,到达时间,接收时间)。
·内务(整洁程度)。
·来访者(来访者姓名,被访姓名,关系)。
·来访者来访(来访者姓名,被访学号,被访姓名,来访时间,结束时间,关系)。
·离返校(学号,姓名,楼号,宿舍号,离校时间,返校时间)。
·评比(楼号,宿舍号,整洁程度)。
·管理(楼号,宿舍号,管理员号)。
(2)确定个关系模式是第几范式
经分析可以发现,“学生”“管理员”“快件”“内务”“宿舍”“离返校”“评
比”“管理”“来访者”“快件”十个关系模式中,都不存在部分函数依赖和传递
函数依赖,因此都属于第三范式。
·分析来访者来访
主码为来访者姓名,被访者学号,(被访者学号)→被访者姓名,存在部分函数
依赖。可以分解为:来访_学号(被访学号,被访姓名),来访(来访姓名,被访
学号,来访时间,结束时间,关系)。
分解后的关系模式都不存在部分函数依赖以及传递函数依赖,符合第三范式。
·分析管理
主码为楼号,宿舍号,但(楼号)→管理员号,可以分解为宿舍_号(楼号,宿
舍号),此关系模式和宿舍有重复,管理(楼号,管理员号)。
分解后的关系模式都不存在部分函数依赖以及传递函数依赖,符合第三范式。
至此,所有关系模式都成为第三范式。
(3)现分析这些关系模式是否足够产生所需报表
·“来访者信息表”,内容包括来访时间,结束时间,来访者姓名, 被访者学号,
关系。可由来访关系模式得到。
·“学生住宿表”,内容包括:学生学号,楼号,宿舍号,姓名,入住时间。其中,
学号,姓名可由学生关系模式得到,楼号,宿舍号,入住时间可由宿舍关系模式
得到。
·“离返校表”,内容包括:学生学号,姓名,楼号,宿舍号,离校时间,返校时
间。都可在离返校关系模式中找到。
·“快件收取表”,内容包括:学生学号,姓名,楼号,宿舍号,数量,接收时间。
其中,学生学号可以在学生关系模式中得到,剩下的可以在快件关系模式中得到。
·“宿舍管理表”,内容包括:楼号,管理员号。楼号可由宿舍关系得到,管理员
号可由管理员关系得到。
·“评比”,内容包括:楼号,宿舍号,整洁程度。楼号,宿舍号可由宿舍关系模
式得到,整洁程度可由内务关系模式得到
因此,所设计关系模式符合报表需要,至此,关系模式设计完毕。
(4)下面给出这些关系表的SQL语句。
//建立学生宿舍管理数据库
create database 学生管理数据库
//创建学生表
create table 学生(
学号 char(11) primary key,
姓名 char(8) ,
性别 char(2) check (性别 in ('男','女')),
系别 char(20),
专业 char(20),
班级 char(6),
联系方式 char(11),
辅导员姓名 char(8),
辅导员联系方式 char(11))
//创建管理员表
create table 管理员(
员工号 char(11) primary key,
姓名 char(8) ,
性别 char(2) check (性别 in ('男','女')),
职位 char(8),
年龄 tinyint check (年龄>=0 and 年龄<=150),
联系方式 char(11))
//创建宿舍表
create table 宿舍(
楼号 char(4) ,
宿舍号 char(4) ,
可住人数 tinyint,
已住人数 tinyint,
primary key (楼号,宿舍号))
//快件表
create table 快件(
楼号 char(4) ,
宿舍号 char(4) ,
姓名 char(8),
数量 tinyint,
到达时间 char(15),
primary key (楼号,宿舍号,姓名))
//来访者表
create table 来访者(
来访者姓名 char(8) ,
被访者姓名 char(8) ,
关系 char(10),
primary key (来访者姓名,被访者姓名))
//内务表
create table 内务(
整洁程度 char(10) primary key
)
//来访表
create table 来访(
来访时间 char(15),
结束时间 char(15),
来访者姓名 char(8),
被访者学号 char(11),
关系 char(10),
primary key (来访者姓名,被访者学号),
foreign key (来访者姓名) references 来访者(来访者姓名),
foreign key (被访者学号) references 学生(学号)
)
//住宿表
create table 住宿(
姓名 char(8),
学号 char(11),
楼号 char(4),
宿舍号 char(4),
入住时间 char(15),
primary key (学号,楼号,宿舍号),
foreign key (学号) references 学生(学号),
foreign key (楼号,宿舍号) references 宿舍(楼号,宿舍号)
)
//离返校表
create table 离返校(
姓名 char(8),
学号 char(11),
楼号 char(4),
宿舍号 char(4),
离校时间 char(15),
返校时间 char(15),
primary key (学号,楼号,宿舍号),
foreign key (学号) references 学生(学号),
foreign key (楼号,宿舍号) references 宿舍(楼号,宿舍号)
)
//快件收取表
create table 快件收取(
姓名 char(8),
学号 char(11),
楼号 char(4),
宿舍号 char(4),
数量 tinyint,
接收时间 char(15),
primary key (学号,楼号,宿舍号),
foreign key (学号) references 学生(学号),
foreign key (楼号,宿舍号) references 快件(楼号,宿舍号)
)
//宿舍管理表
create table 宿舍管理(
楼号char(4) primary key,
员工号char(11),
foreign key(楼号) references 宿舍(楼号),
foreign key(员工号) references 管理员(员工号)
)
//评比表
create table 评比(
楼号char(4) ,
宿舍号char(4),
整洁程度char(10),
primary key(楼号,宿舍号),
foreign key(楼号) references 宿舍(楼号),
foreign key(宿舍号) references 宿舍(宿舍号)
)
4 数据库行为设计
4.1安全控制
假设系统用户分为如下几类:
·系统管理员:具有系统的全部操作权限。
·教务部门:具有对学生基本信息的管理权。
·人事部门:具有对管理员基本信息的维护权。
·各宿舍管理部门:具有对学生离返校,快件,住宿,来访等信息的维护权。
·用户:具有对部分数据的查询权。
4.2数据操作功能
(1)数据录入
包括对所有表的录入。只有具有相应权限的用户才能录入相应数据。
(2)数据删除
包括对所有数据的删除。只有具有相应权限的用户才能删除相应的数据。删除数据要注意表之间的关联关系,如在删除“学生表”之前应该先删除与之有关联关系的表的内容,在进行删除之前要提醒用户是否真的要删除数据。
(3)数据修改
当某些数据发生变化或者录入不正确时,应该允许用户进行修改。修改数据一般是先根据一定条件查询出要修改的记录,然后对某些记录进行修改,修改完成后再写回数据库中。同理,只有具有相应权限的用户才可以进行修改。
(4)数据查询
一般允许所有使用数据库的用户都具有查询权限。本系统提出的查询要求有:
·根据系,专业,班级查询学生基本信息。
·根据职位查询管理员信息。
·根据学号查询学生离返校情况。
·根据学号查询每个学生来访者情况。
·根据楼号,宿舍号查询宿舍人员。
等等。
5 总结
通过本次数据库设计,制作ppt以及准备讲解的过程中。我们巩固了课堂上学习过的数据库知识,并且在所有制作流程中密切配合,通力合作,最终完成了本次课题。但是由于能力所限,在制作过程中难免有错误的地方,希望能在以后的操作中逐步改正。
参考文献
[1] 何玉洁.数据库原理与应用教程.机械工业出版社.2011.11。
第二篇:Java_数据库课程设计报告
数据库程序设计 课程设计报告
课 题: 学生成绩管理系统
姓 名: * * *
学 号: * * *
同组姓名: **、***
专业班级: 网工09102
指导教师:
设计时间: 2011年9月
目 录
1、开发背景........................................................................................................ 2
2、系统描述........................................................................................................ 2
3、数据分析........................................................................................................ 2
3.1、数据流图................................................................................................ 2
3.2、数据字典................................................................................................ 2
4、概念模型设计................................................................................................. 2
4.1E-R图........................................................................................................ 2
5. 逻辑模型设计及优化...................................................................................... 2
5.1数据库表:............................................................................................... 2
6、应用程序设计................................................................................................. 2
7、课程设计心得体会......................................................................................... 2
1、开发背景
90年代中期,由于Internet 的迅速普及,使Intranet成为Internet技术在企业管理信息系统中的应用和延伸,形成了集计算机,计算机网络、数据库、分布式计算等于一体的信息技术综合体,它打破了时间和地域的界限,使信息交流变得快捷、准确,为建立现代企业管理信息系统提供了充足的条件。企业信息管理系统在此基础上延伸、扩展,使之上下、内外全面贯通。随着Internet技术的兴起,对C/S结构的一种变化或者改进的结构。在这种结构下,用户界面完全通过WWW浏览器实现,一部分事务逻辑在前端实现,但是主要事务逻辑在服务器端实现,形成所谓3-tier结构。B/S结构,主要是利用了不断成熟的WWW浏览器技术,结合浏览器的多种Script语言(VBScript、JavaScript…)和ActiveX技术,用通用浏览器就实现了原来需要复杂专用软件才能实现的强大功能,并节约了开发成本,是一种全新的软件系统构造技术。随着Windows 98/Windows 2000将浏览器技术植入操作系统内部,这种结构更成为当今应用软件的首选体系结构。显然B/S结构应用程序相对于传统的C/S结构应用程序将是巨大的进步。
2、系统描述
经过调研及分析讨论,学生成绩管理系统主要完成以下功能:
(1)学生个人信息维护:主要是完成学生个人信息的检索、修改,学生用户只能对自己的信息操作。
(2)学生成绩检索:主要是完成学生个人成绩的查询,学生用户只能对自己的成绩进行检索。
(3)老师个人信息维护:主要是完成老师个人信息的检索、修改,老师用户只能对自己的信息操作。
(4)学生成绩维护: 主要是完成老师对任课课程的学生成绩进行检索、添加、修改,老师用户只能对自己任课课程的成绩进行操作。
(5)学生信息维护:主要是完成管理员对所有学生信息的维护,包括条件检索、添加、修改、删除,该功能只能由管理员完成。
(6)老师信息维护:主要是完成管理员对所有老师信息的维护,包括条件检索、添加、修改、删除,该功能只能由管理员完成。
(7)课程信息维护:主要是完成管理员对课程的管理,包括检索课程,添加课程以及该课程任课老师和学习的学生。
3、数据分析
3.1、数据流图
通过需求分析,得出学生成绩管理系统的教师业务处理数据流如图1所示。
图1 教师业务数据流图
3.2、数据字典
(1)数据流的描述
数据流编号: D01
数据流名称: 用户名和密码
简述:教师输入用户名和密码验证
数据流来源:教师
数据流去向:P01教师信息判断
数据流组成:用户名和密码
数据流量:50/天
高峰流量:50/天
(2)处理逻辑的描述
处理逻辑编号:P01
处理逻辑名称:教师登录权限判断
简述:判断教师登录权限的合法性
输入的数据流:教师的用户名和密码
处理描述: 根据教师提供的同户名和密码,验证教师信息,验证通过则进入主页面,验证不通过则返回给教师信息指明为非法用户。
处理频率: 50次/天
处理逻辑编号:P02
处理逻辑名称:教师个人信息查询
简述:查询并显示教师个人基本信息
处理描述:根据session传出的教师ID在数据库中查找出该教师的个人基本信息,打印到该页面。
处理频率: 50次/天
处理逻辑编号:P03
处理逻辑名称:教师任课课程学生成绩查询
简述:查询并显示教师任课课程的学生成绩
处理描述:根据session传出的教师ID,然后再在数据库中跨表查询出该教师的任课科目的所有学生成绩,打印到该页面。
处理频率: 50次/天
处理逻辑编号:P04
处理逻辑名称:验证用户当前密码,提供修改密码权限
简述:教师可以通过该页面修改自己的账号的登录密码。
处理描述:从数据库中查询出该教师的当前密码并比较输入的当前密码,比较两次输入的新密码。
处理频率: 10次/天
处理逻辑编号:P05
处理逻辑名称:教师修改个人信息
简述:教师修改个人的基本信息
处理描述:根据session传出的教师ID在数据库中查找出该教师的个人基本信息,打印到该页面,同时提供了几项可以修改的选项,教师可以并保持,正确提交后,将修改的信息提交到数据库中。
处理频率: 10次/天
处理逻辑编号:P06
处理逻辑名称:录入学生成绩
简述:录入该教师任课课程的学生成绩
处理描述:从数据库中查出该教师任课课程的所有学生,并录入学生的平时成绩和考试成绩,根据一定的算法得出学生的最后成绩,并保存到数据库中。
处理频率: 10次/天
处理逻辑编号:P07
处理逻辑名称:修改该教师任课课程的学生成绩
简述:查询并显示学生的成绩,提供修改权限
处理描述:查询出已经录入成绩的学生的成绩,允许教师修改学生的成绩,提交后保存到数据库。
处理频率: 10次/天
处理逻辑编号:P08
处理逻辑名称:修改教师用户登录密码
简述:验证教师用户当前密码,提供修改密码的权限
处理描述:验证当前密码和新密码的合法性,合法则提交到数据库,非法则跳到p04。
处理频率: 10次/天
处理逻辑编号:P09
处理逻辑名称:推出系统
简述:教师用户退出系统
处理描述:教师用户安全退出系统,跳转到登录页面。
处理频率: 50次/天
(3)数据存储的描述
数据存储编号:F01
数据存储名称:教师用户验证信息
简述:教师用户的用户名和密码
数据存储组成:用户名+用户类型+密码+用户ID
关键字:用户ID
相关联的处理:P01、P04
数据存储编号:F02
数据存储名称:教师个人基本信息
简述:查询出教师用户的基本个人信息
数据存储组成:教师姓名+年龄+教师ID+教师密码+教师籍贯+教师电话号码+教师地址+教师性别+教师照片
关键字:教师ID
相关联的处理:P02、P05
数据存储编号:F03
数据存储名称:读取学生成绩
简述:查询该教师任课课程的学生成绩
数据存储组成: 学生姓名+课程名称+学生成绩
关键字:教师ID+学生ID
相关联的处理:P03
数据存储编号:F04
数据存储名称:存储修改的信息
简述:存储修改的信息
数据存储组成: 包括学生成绩块+用户密码块+用户个人信息块
关键字:教师ID+学生ID
相关联的处理:P04、P05、P06、P07、P08
(4)外部实体的描述
外部实体编号:S01
外部实体名称:教师用户
简 述:登录系统的教师用户
输入的数据流:D002
输出的数据流:D001
4、概念模型设计
4.1E-R图
图2 系统E-R图
5. 逻辑模型设计及优化
5.1数据库表:
表1 学生个人信息表(student_info表)
表2学生成绩表(student_score表)
表3课程表(course表)
表4教师个人信息表(teacher_info表)
6、应用程序设计
图3系统登录界面
图4教师用户主页面
图5教师个人信息页面
图6修改学生成绩页面
7、课程设计心得体会
本次数据库课程设计收获很大,当然也花了好多的心思和时间,首先,我们为团队合作,共同开发这个项目,团队意识真的很重要,我们就在团队合作上出了些小问题,经过交流得到了解决,问题导致了我们的项目完成时间的推迟,这让我们意识到团队的合作是很不容易的,首先是对项目的认识必须统一,当我们对项目的需求没有统一理解时,这将为失败埋下伏笔,这样注定失败,至少是在代码组合时无法兼容,更严重可能会要全部返工。团队合作的第二个重点是:合理分工,合理的分工能让项目完成的更快更好,合作更加的愉快,不合理的分工会导致大家的心态不一,出现分歧,出现问题,出了问题就无法继续项目的开发了。我们本次分工上也出现了一些问题,主要原因是团队每个人技术特长不一,最后还是进行了合理的安排。完成了项目的基本功能。
在实际开发的过程中给了我很多的实践经验,课程设计跟平时的理论课程有很大的区别,就是动手能力要求高,同时也提高我们的动手能力,课堂上的理论,我们通过项目得到了实际的应用。当然也发现了很多自己以前未能发现的知识上的不知,实践是检验真理的唯一标准,也是检验自己知识掌握程度的机会,在动手编码的过程中,我发现了很多数据库知识上的缺陷,也发现了自己编码的不良之处,通过和同学老师的交流得到了改正,并收获了很多的实践经验。
参考文献
[1] 钱雪忠.数据库原理及应用(第二版).北京邮电大学出版社.2004
[2] 钱雪忠.数据库原理及应用实验指导(第二版).北京邮电大学出版社.2004
[3] 李刚.疯狂Java讲义.电子工业出版社.2008
附录:
JDBC数据库连接源代码
package com.hnwl.util;
import java.sql.*;
publicclass DBconn {
//定义驱动名
public static String drivername="oracle.jdbc.OracleDriver";
//定义 url
public static String url="jdbc:oracle:thin:@localhost:1521/oracle10";
//定义连接数据库的用户名
public static String user="student";
//定义连接数据库的用户密码
public static String password="student";
public static Connection GetDBConnection()
{
Connection conn=null;
try {
Class.forName(drivername);
try {
conn = DriverManager.getConnection(url, user, password);
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
System.out.println("数据库连接异常!");
}
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
System.out.println("驱动加载异常!");
}
return conn;
}
public static void CloseAll(ResultSet rs,Statement stat,Connection conn)
{
if(rs!=null)
try {
rs.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
if(stat!=null)
try {
stat.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
if(conn!=null)
try {
conn.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
封装成绩类源代码
package com.hnwl.beans;
publicclass ClassScore {
String stud_id;
String stud_name;
String course_name;
String score;
public ClassScore(String studId, String studName, String courseName,
String score) {
super();
stud_id = studId;
stud_name = studName;
course_name = courseName;
this.score = score;
}
public String getStud_id() {
return stud_id;
}
publicvoid setStud_id(String studId) {
stud_id = studId;
}
public String getStud_name() {
return stud_name;
}
publicvoid setStud_name(String studName) {
stud_name = studName;
}
public String getCourse_name() {
return course_name;
}
publicvoid setCourse_name(String courseName) {
course_name = courseName;
}
public String getScore() {
return score;
}
publicvoid setScore(String score) {
this.score = score;
}
}
Servlet逻辑层判断密码
package com.hnwl.servlet;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import com.hnwl.biz.login;
public class UserLogin extends HttpServlet {
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
request.getParameter("gbk");
String id=request.getParameter("id");
String password=request.getParameter("password");
String user_type=request.getParameter("user_type");
String username="";
response.setContentType("text/html;charset=gbk");
PrintWriter out = response.getWriter();
out
.println("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">");
out.println("<HTML>");
out.println(" <HEAD><TITLE>用户密码错误</TITLE></HEAD>");
out.println(" <BODY><center>");
if(user_type.equals("student"))
{
login student=new login();
username=student.stud_login(id, password);
if(username!=null)
{
HttpSession session=request.getSession();
session.setAttribute("stud_name", username);
session.setAttribute("stud_id", id);
response.sendRedirect("StudentMenu.jsp");
}
else
{
out.println("账号或密码有误 !");
response.setHeader("refresh","2;URL=login.html");
out.println("<br>两秒后自动跳转到登陆窗口!!!<br>");
out.println("如果没有跳转,请按<a href=\"login.html\">点击这里</a>!!!<br>");
}
}
else if(user_type.equals("teacher"))
{
login teacher=new login();
username=teacher.teacher_login(id, password);
if(username!=null)
{
HttpSession session=request.getSession();
session.setAttribute("teacher_name", username);
session.setAttribute("teacher_id", id);
response.sendRedirect("TeacherMenu.jsp");
}
else
{
out.println("账号或密码有误 !");
response.setHeader("refresh","2;URL=login.html");
out.println("<br>两秒后自动跳转到登陆窗口!!!<br>");
out.println("如果没有跳转,请按<a href=\"login.html\">点击这里</a>!!!<br>");
}
}
else
{
if(id.equals("admin")||password.equals("admin")||user_type.equals("admin"))
{
HttpSession session=request.getSession();
session.setAttribute("admin_name", id);
response.sendRedirect("AdminMenu.jsp");
}
else
{
out.println("账号或密码有误 !");
response.setHeader("refresh","2;URL=login.html");
out.println("<br>两秒后自动跳转到登陆窗口!!!<br>");
out.println("如果没有跳转,请按<a href=\"login.html\">点击这里</a>!!!<br>");
}
}
}
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doPost(request,response);
}
}
Jsp前台页面源代码
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@page import="com.hnwl.biz.Research"%>
<%@page import="com.hnwl.beans.Student"%>
<%@page import="com.hnwl.biz.TeacherDBControl"%>
<%@page import="com.hnwl.beans.TeacherInfo"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>My JSP 'ViewStud.jsp' starting page</title>
</head>
<body>
<%!String teacher_ID; %>
<%
teacher_ID=(String)session.getAttribute("teacher_id");
TeacherDBControl select = new TeacherDBControl();
List<TeacherInfo> list=select.selectByID(teacher_ID);
%>
<center>
<table border="2" height="500" width="450" align="center">
<tr align="center"><td colspan="2" rowspan="3"><img src="<%=list.get(0).getTeacher_photo()%>"></td><td>姓名:</td><td><%=list.get(0).getTeacher_name() %></td><td>性别:</td><td><%=list.get(0).getTeacher_sex() %></td></tr>
<tr align="center"><td>年龄:</td><td><%=list.get(0).getTeacher_age()%></td><td>籍贯:</td><td><%=list.get(0).getTeacher_origin() %></td> </tr>
<tr align="center"><td>联系电话</td><td colspan="4"><%=list.get(0).getTeacher_tel()%></td> </tr>
<tr align="center"> <td>任课名称:</td><td colspan="5"><%=list.get(0).getCourse_name()%></td></tr>
<tr align="center"><td>职称:</td><td><%=list.get(0).getProfessional() %></td><td>现居住地:</td><td><%=list.get(0).getTeacher_add() %></td><td>工号:</td><td><%=list.get(0).getCourse_id()%></td></tr>
</table>
</center>
</body>
</html>
Sql数据库相关源代码
drop user student cascade ;
create user student
identified by student;
grant dba to student;
conn student/student;
drop table student_info;
drop table student_score;
drop table course;
drop table teacher_info;
create table student_info(
stud_id varchar2(30) primary key,
stud_name varchar2(20),
person_id varchar2(30),
stud_password varchar2(20),
stud_age number,
stud_sex varchar2(4),
stud_tel varchar2(30),
major varchar2(20),
grade varchar2(20),
classes varchar2(20),
stud_photo varchar2(30),
stud_origin varchar2(50));
create table student_score(
stud_id varchar2(30),
course_id number,
score number(4,1),
primary key(stud_id,course_id));
create table course (
course_id number primary key,
course_name varchar2(30),
teacher_id varchar2(20),
course_level number);
create table teacher_info(
teacher_id varchar2(20) primary key,
teacher_name varchar2(20),
teacher_password varchar2(20),
course_id number,
teacher_add varchar2(50),
teacher_origin varchar2(20),
teacher_tel varchar2(30),
professional varchar2(10),
teacher_age number,
teacher_sex varchar2(4),
teacher_photo varchar2(20));