教务管理系统——数据库课程设计mysql+java
数据库原理与应用课程设计
任 务 书
https://donload.csdn./donload/eixin_48388330/85448967https://donload.csdn./donload/eixin_48388330/85448967 此为工程文件资源包
【题目】教务管理系统(或自拟题目)
【目的】该实践性环节对于巩固学生的数据库知识,系统地掌握数据库设计理论与应用,加强学生的实践动手能力和提高学生的综合开发经验十分重要和必要。
本课程分为系统需求分析与数据库设计、应用程序功能设计和系统集成调试三个阶段进行。
主要目标如下
1、加深学生对数据库系统、应用程序设计语言的理论知识的理解和应用水平。
2、通过设计实际的数据库系统应用课题,使学生进一步熟悉数据库管理系统的操作技术,并提高动手能力以及分析问题、解决问题的能力。
【要求】1、每个学生必须独立完成;
2、课程设计累计时间为1周(20学时、集中或分散);
3、整个数据库系统设计,后台数据库可用SQL Server或MYSQL,前台开发工具与编程语言任选。
4、课程设计期间,中期检查与考勤采用线上管理模式,特定时间无故缺席按旷课处理;缺席时间达三分之一课时以上者,未按规定要求上交课程设计报告与设计成果的学生,其成绩按不及格处理。
5、不参与设计且不提交任何成果,缺席答辩的同学,成绩计零分(或按旷考处理)。
【内容】1、按照题目《教务管理系统》(或自拟题目)的应用需求进行调研,通过需求分析、模拟数据,提取实体、实体与实体之间的联系,运用数据库设计方法进行数据库的设计,并插入一定量的实验数据。
2、根据系统的实际应用功能需求、以及考核标准来完成对应难度的数据库系统后台开发。
3、实现应用程序功能的设计、编程、优化功能。(选做)
【考核标准】(1) 学生用户,通过输入学号、密码进入系统。能修改个人信息,修改密码;能查询课程库所有课程信息,但不能修改;能查询自己的个人成绩,但不能修改(及格要求)。
(2) 设置管理员超级用户,通过输入账号、密码进入系统。能查询及修改数据库中的任意表,如用户表、学生信息表、课程库表、成绩表等(中等要求)。
(3) 用户表中追加教师用户。数据库中增加教师教学任务表,教师能根据课程库中的课程,给自己添加、删除、修改教学任务。(良好要求)
(4) 完善教务管理系统。学生能看到教师的教学任务,并能做到学生选课;教师对自己上课的课程,能给已选课的学生打成绩(优秀要求)。
注编程过程中工程文件名必须取自己的学号;程序运行结果中,能打开的各个窗口名必须包含自己的学号,此项没有成绩作0分处理。
【设计报告】1、课程设计报告要求
(1)不少于3000字,用A4纸排版并打印。
(2)主要内容及装订顺序封面(统一格式)、课程设计任务书、正文、教师评语表等。
(3)正文部分应该包括需求分析、数据库设计(含概念设计、逻辑设计、物理设计)、程序模块设计(含功能需求、用户界面设计、程序代码设计与分析、调试及运行结果)等。
(4)设计报告严禁抄袭,不允许雷同,否则按不及格论处。
2、课程的设计最终需要提交的内容
(1)排版合理规范、内容体系完整(按上面的要求)的设计报告。
(2)数据库与应用系统(数据库的完整备份文件,源程序代码对应项目工程压缩文件统一命名后通过网络上传至指导老师指定的云班课对应的任务下)。
(3)系统功能简介与系统移植、安装、设置、口令、关键操作说明等WORD帮助文档。(选做)
3、课程设计的成绩评定
课程的成绩由四部分构成,分别是考勤20%、设计报告40%、数据库应用系统20%、答辩20%。
成绩计分按优、良、中、及格和不及格五个等级评定。
附表
数据库课程设计课题选题表
课题序号
课题名称
功能设计重点
1
图书销售管理系统
销售查询、统计、汇总分析
2
通用工资管理系统
工资级别、月报表、年度汇总
3
报刊订阅管理系统
报刊订阅费用、分发与结算
4
医药销售管理系统
销售查询、统计、汇总分析
5
电话计费管理系统
计费方式设计与费用统计
6
宾馆客房管理系统
客房预订、退订、入住及费用
7
学生学籍管理系统
学籍注册、日常管理、退、休学
8
车站售票管理系统
预售票、退票、换票,节假浮动
9
汽车销售管理系统
销售查询、统计、汇总分析
10
仓储物资管理系统
物资库存的统计、查询与分析
11
企业人事管理系统
人事管理与其他系统的接口
12
选修课程管理系统
选修课程流程管理与成绩管理
13
线上授课管理系统
线上课程、教师、考勤、授课资源
14
疫情综合管理系统
社区服务、志愿者、出入管理、定位
课程设计实验报告 一、题目
《教务管理系统》
二、需求分析1、对功能的定义
(1)学生日常管理
a)限于全体学生操作。
b)一般浏览者只能查看教务信息,不能对它做任何修改。而且不同的用户级别所看到的教务信息是有限制的。
(2)教师日常管理
a)查询单条教务信息主要适合全体老师操作的。在窗体上先可以选择查询的条件,再输入关键字名。按查询即可。
b)查询全部教务信息是给管理员用的,为了方便管理员查找,也有关键字搜索和模糊搜索,查到记录后,也可双击记录即可显示详细信息。
c)成绩查询输入学号、密码即可查询学生成绩
(3)操作管理
a)仅限管理员。其中可以添加、修改、删除操作学生,设置他们的权限、级别及密码。
b)系统整理信息显示距离管理员整理系统的时间。
(4)评教管理
a)打印单条教务记录适用于一般浏览者和用户。他们只能打印在他们的权限范围内所能查看的教务。
b)打印全部教务市委管理员设置的,他们可以根据需要设置打印。
(5)选课管理
a)学生进行网上选课
b)对选课情况进行统计及分析,并生成新的课表
三、数据分析与建模
一个学校有多个系,一个系有多个专业,也有多个教研室。每个教研室有多名教师。每个专业有不同的班级,每个学生只有一个专业,每个班级由多名学生组成。每个学生可选多个课程,每个课程也可以由多名学生选择。一个课程可由多个教师所教,每个教师也可教多个课程。每个教师可指导多名学生。选课中有学生所选课程的成绩,教师任课中有每个教师所开设课程的课程时间。
E-R图
关系模型
学生(学号,姓名,性别,年龄,入学年份,班号,职工号)
班级(班号,班名,专业号)
专业(专业号,专业名,系号)
系(系号,系名,学校名)
教研室(教研室号,教研室名,系号)
老师(职工号,姓名,性别,年龄,学历,职称,入职时间,教研室号)
课程(课程号,课程名,时间,学时,学分,先修课,职工号)
选修(学号,课程号,成绩)
任课(职工号,课程号,开课时间,结课时间)
关系模式
student(userID,userName,userSex,userAge,markYear,classID,teachID)
class(classID,className,majorID)
major(majorID,majorName,deptID)
depratment(deptID,deptName,stuName)
teacher_room(roomID,roomName,deptID)
teacher(teachID,teachName,teachSex,teachAge,degree,title,teachYear,roomID)
course(courseID,courseName,time,hours,credit,cpno,teachID)
sc(userID,courseID,grade)
setup(teachID,courseID,startTime,endTime)
四、数据库建立各表的属性以及外键、主键等为下图所示(对象)
如下创建了10个表,5个视图,用于方便程序系统开发
1.各个表所拥有的属性以及类型、长度和主键等如下图所示
2.之后添加外键
3.添加各元组数据(此处不展示)
4.创建视图
使用
CAEATE VIEW <视图名>(列名,…)
AS
创建视图(此处只附SELECt语句)
(1)视图teacher_sc
SELECT teacher.teachID,teachName,courseName,time,hours,startTime,endTime FROM teacher,course,setup WHERe teacher.teachID=setup.teachID AND course.courseID=setup.courseID
(2)视图teacher_information
SELECt teachID,teachName,teachSex,teachAge,degree,title,teachYear,roomName,deptName,stuName FROM teacher,teacher_room,depratment WHERe teacher.roomID=teacher_room.roomID AND teacher_room.deptID=depratment.deptID
(3)视图teacher_student
SELECt teacher.teachID,userName,className,courseName,teachName,time,grade,startTime,endTime FROM student,class,sc,course,teacher,setup WHERe student.classID=class.classID AND sc.userID=student.userID AND sc.courseID=course.courseID AND course.teachID=teacher.teachID AND teacher.teachID=setup.teachID AND setup.courseID=course.courseID
(4)视图student_information
SELECt userID,userName,userSex,userage,markYear,className,majorName,deptName,stuName FROM student,class,major,depratment WHERe student.classID=class.classID AND class.majorID=major.majorID AND major.deptID=depratment.deptID
(5)视图student_sc_grade
SELECt student.userID,userName,className,courseName,teachName,time,grade,startTime,endTime FROM student,class,sc,course,teacher,setup WHERe student.classID=class.classID AND sc.userID=student.userID AND sc.courseID=course.courseID AND course.teachID=teacher.teachID AND teacher.teachID=setup.teachID AND setup.courseID=course.courseID
五、数据库应用开发与运行(程序代码、界面图、详细功能说明,选做)
//Users.java
package .tjl.bean;
@SuppressWarnings("all")
public class User {
private int id;
private String uname;
private String upass;
private int type;
public User() {
super();
}
public User(String uname, String upass) {
super();
this.uname = uname;
this.upass = upass;
}
public User(String uname, String upass, int type) {
super();
this.uname = uname;
this.upass = upass;
this.type = type;
}
public User(int id, String uname, String upass, int type) {
super();
this.id = id;
this.uname = uname;
this.upass = upass;
this.type = type;
}
@Override
public String toString() {
return "User{" + "id=" + id + ", uname='" + uname + ''' + ", upass='" + upass + ''' + ", type=" + type + '}';
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getUname() {
return uname;
}
public void setUname(String uname) {
this.uname = uname;
}
public String getUpass() {
return upass;
}
public void setUpass(String upass) {
this.upass = upass;
}
public int getType() {
return type;
}
public void setType(int type) {
this.type = type;
}
}
//UserDao.java
package .tjl.dao;
import .tjl.bean.User;
public interface UserDao {
int login(User user);
boolean insert(User user);
boolean delete(String uname);
boolean update(User user);
User select(String uname);
User select_stu_information(String uname);
User select_stu_sc(String uname);
User select_teacher_information(String uname);
User select_teacher_sc(String uname);
}
// UserDao_Imp.java
package .tjl.dao;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import .tjl.bean.User;
import .tjl.jdbc.JDBCUtils;
public class UserDao_Imp implements UserDao {
int hether=0;
private static final String SQL_USER_LOGIN = "select type from user here uname = ? and upass = ?";
private static final String SQL_USER_INSET = "insert into user values (id,?,?,2)";
private static final String SQL_USER_DELETe = "delete from user here uname = ?";
private static final String SQL_USER_UPDATe = "update user set upass = ? here uname = ?";
private static final String SQL_USER_SELECT = "select from user here uname = ?";
private static final String SQL_STU_information_SELECt = "SELECT FROM student_information WHERe userID= ?";
private static final String SQL_STU_sc_grade_SELECt = "SELECT FROM student_sc_grade WHERe userID= ?";
private static final String SQL_TEACHER_information_SELECt = "SELECT FROM teacher_information WHERe teachID= ?";
private static final String SQL_TEACHER_sc_SELECt = "SELECT FROM teacher_sc WHERe teachID= ?";
@Override
public int login(User user) {
Connection conn = JDBCUtils.getConnection();
PreparedStatement prepareStatement = null;
ResultSet result = null;
try {
prepareStatement = conn.prepareStatement(SQL_USER_LOGIN);
prepareStatement.setString(1,user.getUname());//设置第一个问号的值
prepareStatement.setString(2,user.getUpass());//设置第二个问号的值
result = prepareStatement.executeQuery();
hile(result.next()){
int type = result.getInt("type");
return type;
}
} catch (SQLException e) {
e.printStackTrace();
}finally {
JDBCUtils.close(conn,prepareStatement,result);
}
return -1;//登录失败
}
@Override
public boolean insert(User user) {
Connection conn = JDBCUtils.getConnection();
PreparedStatement prepareStatement = null;
try {
//数据库中已经将type的默认值设置为2,所以这里不需要设置type的值
prepareStatement = conn.prepareStatement(SQL_USER_INSET);
prepareStatement.setString(1,user.getUname());//设置第一个问号的值
prepareStatement.setString(2,user.getUpass());//设置第二个问号的值
int line = prepareStatement.executeUpdate();
return line>0?true:false;
} catch (SQLException e) {
e.printStackTrace();
}finally {
JDBCUtils.close(conn,prepareStatement,null);
}
return false;
}
@Override
public boolean delete(String uname) {
Connection conn = JDBCUtils.getConnection();
PreparedStatement prepareStatement = null;
try {
prepareStatement = conn.prepareStatement(SQL_USER_DELETE);
prepareStatement.setString(1,uname);//设置第一个问号的值
int line = prepareStatement.executeUpdate();
return line>0?true:false;
} catch (SQLException e) {
e.printStackTrace();
}finally {
JDBCUtils.close(conn,prepareStatement,null);
}
return false;
}
@Override
public boolean update(User user) {
Connection conn = JDBCUtils.getConnection();
PreparedStatement prepareStatement = null;
try {
prepareStatement = conn.prepareStatement(SQL_USER_UPDATE);
prepareStatement.setString(1,user.getUpass());//设置第一个问号的值
prepareStatement.setString(2,user.getUname());//设置第二个问号的值
int line = prepareStatement.executeUpdate();
return line>0?true:false;
} catch (SQLException e) {
e.printStackTrace();
}finally {
JDBCUtils.close(conn,prepareStatement,null);
}
return false;
}
@Override
public User select(String uname) {
Connection conn = JDBCUtils.getConnection();
PreparedStatement prepareStatement = null;
ResultSet result = null;
try {
prepareStatement = conn.prepareStatement(SQL_USER_SELECT);
prepareStatement.setString(1,uname);//设置第一个问号的值
result = prepareStatement.executeQuery();
hile(result.next()){
int id = result.getInt("id");
uname = result.getString("uname");
String upass = result.getString("upass");
int type = result.getInt("type");
return ne User(id,uname,upass,type);
}
} catch (SQLException e) {
e.printStackTrace();
}finally {
JDBCUtils.close(conn,prepareStatement,result);
}
return null;//查询失败返回null
}
@Override
public User select_stu_information(String uname) {
Connection conn = JDBCUtils.getConnection();
PreparedStatement prepareStatement = null;
ResultSet result = null;
try {
prepareStatement = conn.prepareStatement(SQL_STU_information_SELECT);
prepareStatement.setString(1,uname);//设置第一个问号的值
result = prepareStatement.executeQuery();
hile(result.next()){
System.out.println("—————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————");
System.out.print("|学校 |");
System.out.print("学号 |");
System.out.print("姓名 |");
System.out.print("性别 |");
System.out.print("年龄 |");
System.out.print("入学时间 |");
System.out.print("班级 |");
System.out.print("专业 |");
System.out.println("学院 |");
System.out.print("|"+result.getString("stuName")+" |");
System.out.print(result.getInt("userID")+" |");
System.out.print(result.getString("userName")+" |");
System.out.print(result.getString("userSex")+" |");
System.out.print(result.getInt("userage")+" |");
System.out.print(result.getString("markYear")+" |");
System.out.print(result.getString("className")+" |");
System.out.print(result.getString("majorName")+" |");
System.out.println(result.getString("deptName")+" |");
System.out.println("—————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————");
System.out.println();
return null;
}
} catch (SQLException e) {
e.printStackTrace();
}finally {
JDBCUtils.close(conn,prepareStatement,result);
}
return null;//查询失败返回null
}
@Override
public User select_stu_sc(String uname) {
Connection conn = JDBCUtils.getConnection();
PreparedStatement prepareStatement = null;
ResultSet result = null;
try {
prepareStatement = conn.prepareStatement(SQL_STU_sc_grade_SELECT);
prepareStatement.setString(1,uname);//设置第一个问号的值
result = prepareStatement.executeQuery();
System.out.println("————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————");
System.out.print("|学号 |");
System.out.print("姓名 |");
System.out.print("班级 |");
System.out.print("课程 |");
System.out.print("课程老师 |");
System.out.print("时间 |");
System.out.print("课程成绩 |");
System.out.print("课程开始时间 |");
System.out.println("课程结束时间 |");
System.out.println("————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————");
hile(result.next()){
System.out.print("|"+result.getInt("userID")+" |");
System.out.print(result.getString("userName")+" |");
System.out.print(result.getString("className")+" |");
System.out.print(result.getString("courseName")+" |");
System.out.print(result.getString("teachName")+" |");
System.out.print(result.getString("time")+" |");
System.out.print(result.getInt("grade")+" |");
System.out.print(result.getString("startTime")+" |");
System.out.println(result.getString("endTime")+" |");
System.out.println("————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————");
System.out.println();
}
} catch (SQLException e) {
e.printStackTrace();
}finally {
JDBCUtils.close(conn,prepareStatement,result);
}
return null;//查询失败返回null
}
@Override
public User select_teacher_information(String uname) {
Connection conn = JDBCUtils.getConnection();
PreparedStatement prepareStatement = null;
ResultSet result = null;
try {
prepareStatement = conn.prepareStatement(SQL_TEACHER_information_SELECT);
prepareStatement.setString(1,uname);//设置第一个问号的值
result = prepareStatement.executeQuery();
hile(result.next()){
System.out.println("—————————————————————————————————————————————————————————————————————————————————————————————————————————————————");
System.out.print("|学校 |");
System.out.print("职工号 |");
System.out.print("姓名 |");
System.out.print("性别 |");
System.out.print("年龄 |");
System.out.print("学历 |");
System.out.print("职称 |");
System.out.print("入教时间 |");
System.out.print("教研室 |");
System.out.println("学院 |");
System.out.print("|"+result.getString("stuName")+" |");
System.out.print(result.getInt("teachID")+" |");
System.out.print(result.getString("teachName")+" |");
System.out.print(result.getString("teachSex")+" |");
System.out.print(result.getInt("teachAge")+" |");
System.out.print(result.getString("degree")+" |");
System.out.print(result.getString("title")+" |");
System.out.print(result.getString("teachYear")+" |");
System.out.print(result.getString("roomName")+" |");
System.out.println(result.getString("deptName")+" |");
System.out.println("—————————————————————————————————————————————————————————————————————————————————————————————————————————————————");
System.out.println();
return null;
}
} catch (SQLException e) {
e.printStackTrace();
}finally {
JDBCUtils.close(conn,prepareStatement,result);
}
return null;//查询失败返回null
}
@Override
public User select_teacher_sc(String uname) {
Connection conn = JDBCUtils.getConnection();
PreparedStatement prepareStatement = null;
ResultSet result = null;
try {
prepareStatement = conn.prepareStatement(SQL_TEACHER_sc_SELECT);
prepareStatement.setString(1,uname);//设置第一个问号的值
result = prepareStatement.executeQuery();
System.out.println("—————————————————————————————————————————————————————————————————————————————————————————");
System.out.print("|职工号 |");
System.out.print("姓名 |");
System.out.print("课程 |");
System.out.print("时间 |");
System.out.print("学时 |");
System.out.print("开始教学 |");
System.out.println("结束教学 |");
hile(result.next()){
System.out.print("|"+result.getInt("teachID")+" |");
System.out.print(result.getString("teachName")+" |");
System.out.print(result.getString("courseName")+" |");
System.out.print(result.getString("time")+" |");
System.out.print(result.getString("hours")+" |");
System.out.print(result.getString("startTime")+" |");
System.out.println(result.getString("endTime")+" |");
System.out.println("—————————————————————————————————————————————————————————————————————————————————————————");
System.out.println();
hether=1;
}
if(hether==0)
System.out.println("n暂无课程教学n");
} catch (SQLException e) {
e.printStackTrace();
}finally {
JDBCUtils.close(conn,prepareStatement,result);
}
return null;//查询失败返回null
}
}
//Vie.java
package .tjl.vie;
import .tjl.bean.User;
import java.util.Scanner;
public class Vie {
private static Scanner input = ne Scanner(System.in);
static String users=null;
// 首页界面
public static User indexVie() {
System.out.println("");
System.out.println("t教务管理系统t");
System.out.println("t请根据提示操作t");
System.out.println("t请输入账号t");
String uname = input.nextLine();
users=uname;
System.out.println("t请输入密码t");
String upass = input.nextLine();
System.out.println("");
return ne User(uname, upass);
}
//管理者菜单界面
public static int managerMenuVie(){
System.out.println("");
System.out.println("t欢迎管理员回家t");
System.out.println("t请根据提示操作t");
System.out.println("t0.退出tt");
System.out.println("t1.添加学生信息t");
System.out.println("t2.删除学生信息t");
System.out.println("t3.修改学生信息t");
System.out.println("t4.查询学生信息t");
String type = input.nextLine();
int item = Integer.parseInt(type);
if(item<0||item>4) {
System.out.println("输入错误,请重新输入");
return managerMenuVie();
}
System.out.println("");
return item;
}
//增加用户界面
public static User addMenuVie(){
System.out.println("");
System.out.println("t添加用户界面t");
System.out.println("t请根据提示操作t");
System.out.println("t请输入账号t");
String uname = input.nextLine();
System.out.println("t请输入密码t");
String upass = input.nextLine();
System.out.println("");
return ne User(uname,upass);
}
//删除用户界面
public static String deleteMenuVie(){
System.out.println("");
System.out.println("t删除用户界面t");
System.out.println("t请根据提示操作t");
System.out.println("t请输入账号t");
String uname = input.nextLine();
System.out.println("");
return uname;
}
//更新修改用户界面
public static User updateMenuVie(){
System.out.println("");
System.out.println("t修改用户界面t");
System.out.println("t请根据提示操作t");
System.out.println("t请输入账号t");
String uname = input.nextLine();
System.out.println("t请输入新密码t");
String upass = input.nextLine();
System.out.println("");
return ne User(uname,upass);
}
//查询用户界面
public static String selectMenuVie(){
System.out.println("");
System.out.println("t查询用户界面t");
System.out.println("t请根据提示操作t");
System.out.println("t请输入查询账号t");
String uname = input.nextLine();
System.out.println("");
return uname;
}
public static void printUser(User user) {
System.out.println("用户ID"+user.getId());
System.out.println("用户名"+user.getUname());
System.out.println("密码"+user.getUpass());
if(user.getType()==1) {
System.out.println("用户权限管理员");
}else if(user.getType()==2){
System.out.println("用户权限学生");
}else {
System.out.println("用户权限老师");
}
}
//学生界面
public static int studentMenuVie(){
System.out.println("");
System.out.println("t欢迎学生回家t");
System.out.println("t请根据提示操作t");
System.out.println("t0.退出tt");
System.out.println("t1.修改密码t");
System.out.println("t2.查询个人信息t");
System.out.println("t3.查询选课信息t");
boolean flag = true;
int num = -1;
hile(flag){
num = Integer.parseInt(input.nextLine());
if (num >= 0 && num <= 3) {
flag = false;//退出循环
break;
}
System.out.println("输入错误,请重新输入");
}
System.out.println("");
return num;
}
//修改密码界面
public static String alterPassVie(){
System.out.println("");
System.out.println("t修改密码界面t");
System.out.println("t请根据提示操作t");
System.out.println("t请输入新密码t");
String upass = input.nextLine();
System.out.println("");
return upass;
}
//学生界面
public static int teacherMenuVie(){
System.out.println("");
System.out.println("t欢迎老师回家t");
System.out.println("t请根据提示操作t");
System.out.println("t0.退出tt");
System.out.println("t1.修改密码t");
System.out.println("t2.查询个人信息t");
System.out.println("t3.查询课表信息t");
boolean flag = true;
int num = -1;
hile(flag){
num = Integer.parseInt(input.nextLine());
if (num >= 0 && num <= 3) {
flag = false;//退出循环
break;
}
System.out.println("输入错误,请重新输入");
}
System.out.println("");
return num;
}
}
//JDBCUtils.java
package .tjl.jdbc;
import java.io.IOException;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Properties;
public class JDBCUtils {
private static String driver;
private static String url;
private static String username;
private static String passord;
static {
InputStream is = JDBCUtils.class.getClassLoader().getResourceAsStream("db.properties");
Properties p=ne Properties();
try {
p.load(is);
driver = p.getProperty("driver");
url = p.getProperty("url");
username = p.getProperty("username");
passord = p.getProperty("passord");
//加载驱动
Class.forName(driver);
//System.out.println("驱动加载成功");
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public static Connection getConnection() {
try {
//System.out.println("数据库连接成功");
return DriverManager.getConnection(url,username,passord);
} catch (SQLException e) {
// TODO Auto-generated catch block
System.out.println("数据库连接失败");
e.printStackTrace();
}
return null;
}
public static void close(Connection conn, Statement statement, ResultSet result) {
try {
if(result!=null) {
result.close();
result=null;
}
if(statement!=null) {
statement.close();
statement=null;
}
if(conn!=null) {
conn.close();
conn=null;
}
}catch (SQLException e) {
e.printStackTrace();
}
}
}
//Contral.java
package .tjl.controller;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import .tjl.bean.User;
import .tjl.dao.UserDao_Imp;
import .tjl.jdbc.JDBCUtils;
import .tjl.vie.Vie;
public class Control {
private static final String SQL_STU_information_SELECT = "SELECT FROM student_information WHERe userID= ?";
static UserDao_Imp userDao_Imp = ne UserDao_Imp();
public static void main(String[] args) {
hile (true) {
User user = Vie.indexVie();
//UserDao_Imp userDao_Imp = ne UserDao_Imp();
//User user = null;
//int type = -1;
//boolean flag=true;//循环标志位
//user = Vie.indexVie();
//type = userDao.login(user);
int type = userDao_Imp.login(user);
sitch (type) {
case -1:
System.out.println("登录失败,请重新登录");
break;
case 1:
System.out.println("恭喜管理员登录成功!");
managerServer();
break;
case 2:
System.out.println("恭喜学生登录成功!");
studentServer(user.getUname());
break;
case 3:
System.out.println("恭喜老师登录成功!");
teacherServer(user.getUname());
default:
break;
}
}
}
//管理员控制
public static void managerServer(){
boolean flag=true;//循环标志位
//UserDao_Imp userDao_Imp = ne UserDao_Imp();
hile (flag){
int choice = Vie.managerMenuVie();//选择操作
sitch (choice){
case 0:
System.out.println("退出系统,再见!");
flag=false;
break;
case 1:
User neUser = Vie.addMenuVie();
if (userDao_Imp.insert(neUser)){
System.out.println("恭喜添加成功!");
}else {
System.out.println("插入失败");
}
break;
case 2:
String uname = Vie.deleteMenuVie();
if (userDao_Imp.delete(uname)){
System.out.println("恭喜删除成功");
}else {
System.out.println("删除失败");
}
break;
case 3:
User user = Vie.updateMenuVie();
if (userDao_Imp.update(user)){
System.out.println("恭喜修改成功!");
}else {
System.out.println("修改失败");
}
break;
case 4:
String uname2 = Vie.selectMenuVie();
User selectUser = userDao_Imp.select(uname2);
if (selectUser!=null){
System.out.println("您查询的信息如下");
//System.out.printf("姓名%s n密码%s n用户类型%dn",
// selectUser.getUname(),selectUser.getUpass(),selectUser.getType());
Vie.printUser(selectUser);
}else {
System.out.println("查询失败,查无此人");
}
break;
default:
break;
}
}
}
//学生控制
public static void studentServer(String uname){
boolean flag=true;//循环标志位
hile (flag){
int choice = Vie.studentMenuVie();//选择操作
sitch (choice){
case 0:
System.out.println("退出系统,再见!");
flag=false;
break;
case 1:
String ps = Vie.alterPassVie();
if (userDao_Imp.update(ne User(uname,ps))){
System.out.println("恭喜修改密码成功!");
}else {
System.out.println("修改密码失败!");
}
break;
case 2:
userDao_Imp.select_stu_information(uname);
break;
case 3:
userDao_Imp.select_stu_sc(uname);
break;
default:
break;
}
}
}
//老师控制
private static void teacherServer(String uname) {
boolean flag=true;//循环标志位
hile (flag){
int choice = Vie.teacherMenuVie();//选择操作
sitch (choice){
case 0:
System.out.println("退出系统,再见!");
flag=false;
break;
case 1:
String ps = Vie.alterPassVie();
if (userDao_Imp.update(ne User(uname,ps))){
System.out.println("恭喜修改密码成功!");
}else {
System.out.println("修改密码失败!");
}
break;
case 2:
userDao_Imp.select_teacher_information(uname);
break;
case 3:
userDao_Imp.select_teacher_sc(uname);
break;
default:
break;
}
}
}
}
// db.properties(用于连接数据库的系统以及账号和密码) driver=.mysql.jdbc.Driver url=jdbc:mysql://localhost:3306/edu_manage username=root passord=13657588218man六、程序结果截图
通过对学生的账号和密码以及管理员账号和密码以及老师的账号和密码,通过与数据库的匹配,识别进入不同的系统。实现管理员的增删改查,以及学生和老师的查询等。
七、结果分析与心得体会本学期学习了数据库原理课程,本次课程所对应的课程设计,通过本次课程设计,深刻学习到了数据库的应用与学习。本次课程设计有多个命题,不过对于自己能力的评定,选择学习过程中最熟悉的《教务管理系统》。通过网上资料的学习、以及书本的知识,先构建自己的需求设计,然后进行E-R图的构建,再进行关系模型的构建,使用MySQL进行表和视图的建立。
数据库的建立完成后,通过资料的学习,想进行程序的开发,使用eclipse,进行与数据库的连接,完成的增删改查。虽然没有达到自己所想的预期,不过通过本次经历也学习到了很多知识。,本次课程设计,收获颇多,不仅储备了自己的知识,还学习到了许多新知识,对今后的学习与应用有了进一步的学习。
空调维修
- 我的世界电脑版运行身份怎么弄出来(我的世界
- 空调抽湿是什么意思,设置抽湿的温度有什么意
- 方太燃气灶有一个打不着火 怎么修复与排查方法
- 夏季免费清洗汽车空调的宣传口号
- 清洗完空调后出现漏水现象
- iphone6能玩什么游戏(iphone6游戏)
- 如何设置电脑密码锁屏(如何设置电脑密码锁屏
- win10删除开机密码提示不符合密码策略要求
- 电脑w7显示不是正版(w7不是正版怎么解决)
- 万家乐z8热水器显示e7解决 怎么修复与排查方法
- 1匹空调多少瓦数(1匹空调多少瓦)
- 安卓手机连接电脑用什么软件好(关于安卓手机
- 电脑网页看视频卡是什么原因(爱拍看视频卡)
- 华帝燃气灶点火器一直响然后熄火怎么办:问题
- 电脑壁纸怎么换(关于电脑壁纸怎么换的介绍)
- 冬天空调的出风口应该朝什么方向(冬天空调风