JAVA开发简单作业管理系统

本次使用JAVA开发一个简单的作业管理系统。首先先用Mysql对数据库进行设计;然后创建JAVAEE WEB项目,通过JDBC连接数据库并编写Dao层对数据库进行操作,接下来编写servlet提供服务器接口,最后编写JSP提供网页端可视化管理。

要实现的功能有:

  • 老师:登录、添加作业(题目、要求和截止时间),添加学生(学生学号)
  • 学生:登录、根据老师添加的作业进行作业提交(作业内容)
    在这里插入图片描述

一、数据库设计

在这里插入图片描述
首先在mysql设计相应的表

  1. 新建数据库homework
CREATE DATABASE homework;
use homework;
  1. 新建表teacher, student, homework, assign, submit
  • teacher
    teacher 表记录老师的基本信息,包括id,name和password,其中id为主键
CREATE TABLE teacher(
	id INT PRIMARY KEY AUTO_INCREMENT,
	name VARCHAR(10) NOT NULL UNIQUE,
	password VARCHAR(20) NOT NULL
);
  • student
    student 表记录学生的基本信息,同样包括id(主键),name和password
CREATE TABLE student(
	id INT PRIMARY KEY AUTO_INCREMENT,
	name VARCHAR(10) NOT NULL UNIQUE,
	password VARCHAR(20) NOT NULL
);
  • homework
    homework 表记录作业的基本信息,包括 作业的id,作业的标题title,和作业的要求requirement,
CREATE TABLE homework(
	id INT PRIMARY KEY AUTO_INCREMENT,
	title VARCHAR(20) NOT NULL UNIQUE,
	requirement VARCHAR(256)
);
  • assign
    assign 表用于连接homework和teacher,包括布置作业的老师tid,作业hid,以及作业的新建时间(通过mysql在添加记录时来自动生成)
CREATE TABLE assign(
	tid INT,
	hid INT,
	create_time DATETIME NULL DEFAULT CURRENT_TIMESTAMP,
	PRIMARY KEY (tid, hid)
);
  • submit
    submit 表用于连接homework和student,包括学生的sid,作业的hid,提交状态status(待提交0、已提交1),提交内容content,提交时间submit_time
CREATE TABLE submit(
	sid INT,
	hid INT,
	status INT NOT NULL,
	content VARCHAR(512),
	submit_time DATETIME,
	PRIMARY KEY (sid, hid)
);

二、创建JAVAEE WEB项目

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在web->WEB-INF目录下创建classes目录和lib目录(之后的jar包就直接拷进lib目录即可),
然后File->Project Structure
在这里插入图片描述
选择本项目下的lib目录
在这里插入图片描述
然后将其添加到Artifacts ->output root中(如果现在无法添加的话,可以先往lib里添加一个jar包)在这里插入图片描述

三、通过JDBC连接数据库

  1. 添加jar包
    在这里插入图片描述
    直接将其添加到lib目录下即可

  2. 创建JDBC connnection,为了使用方便,我将获取connection封装成了一个静态方法,以后获取connection只需要
    Connection connection = JDBCUtil.getConnection();就可以了

public class JDBCUtil {

    //单实例Connection
    private static Connection connection;

    //JDBC驱动名
    private static final String driverName = "com.mysql.cj.jdbc.Driver";

    //连接数据库的url
    private static final String url = "jdbc:mysql://127.0.0.1:3306/homework?serverTimezone=UTC&useSSL=false&allowPublicKeyRetrieval=true";

    //数据库用户名
    private static final String user = "user";

    //数据库用户的密码
    private static final String password = "password";

    //私有constructor,防止实例化
    private JDBCUtil(){ }

    public static Connection getConnection() {
        if(connection == null) {
            try {
                Class.forName(driverName);
                connection = DriverManager.getConnection(url, user, password);
            } catch (ClassNotFoundException e) {
                e.printStackTrace();
            } catch (SQLException e) {
                e.printStackTrace();
                try {
                    connection.close();
                } catch (SQLException e1) {
                    e.printStackTrace();
                }
            }
        }

        return connection;
    }

    //测试获取connection是否成功
    public static void main(String[] args) {
        Connection connection = JDBCUtil.getConnection();
        if (connection != null)
            System.out.println("连接成功");
        else
            System.out.println("连接失败");
    }
}

四、项目源码

由于代码过多,就不把每个文件都展示了,我把代码放到了Github上,大家可以去上面查看:
https://github.com/BaoSKY/JavaEE

五、项目运行截图

  • 登录和注册
    为了方便我把老师和学生的登录和注册都放到了一起
    在这里插入图片描述

  • 老师登录后进入创造作业的页面
    在这里插入图片描述

  • 要设计一份作业,需要填写标题title和要求requirement
    在这里插入图片描述

  • 作业设计完成之后,进入给学生分配作业的页面
    添加学生框中,填写学生的编号,并通过";"进行分割
    在这里插入图片描述

  • 提交后提示操作成功
    在这里插入图片描述

  • 学生登陆后直接查看被分配到的作业

在这里插入图片描述

  • 填写作业内容提交作业

在这里插入图片描述

  • 操作完成后提示操作成功
    在这里插入图片描述
  • 3
    点赞
  • 78
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值