功能介绍
1、老师:添加作业,添加学生。查询某次作业学生提交情况;
2、学生:查看已有作业。根据老师添加的作业,进行作业提交;
数据库
数据库school以及数据库下s_student, s_homework, s_student_homework三张表。
s_homework
s_student
s_student_homework
项目文件简单介绍
1、Model
model下建立数据映射类,student, homework, studenthomework,分别对应数据库中的三张表。
student类
package com.java.code.model;
import java.util.Date;
public class Student {
private long id;
private String name;
private Date createTime;
private Date updateTime;
public long getId() {
return id;
}
public void setId(long id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Date getCreateTime() {
return createTime;
}
public void setCreateTime(Date createTime) {
this.createTime = createTime;
}
public Date getUpdateTime() {
return updateTime;
}
public void setUpdateTime(Date updateTime) {
this.updateTime = updateTime;
}
}
homework, studenthomework与此类似。
2、JDBC
使用StudentHomeworkJdbc来做数据库的连接和操作。
例如向s_student表中添加数据可以使用以下代码:
public static boolean addStudent(Student student){
try {
Class.forName(driverName);
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
String sqlString = "insert into s_student (id,name,create_time) values(?,?,?)";
int resultSet = 0;
try (Connection connection = DriverManager.getConnection(url, username, password)) {
try (PreparedStatement ps = connection.prepareStatement(sqlString)) {
ps.setLong(1,student.getId());
// 为sql语句中第一个问号赋值
ps.setString(2,student.getName());
// 为sql语句中第二个问号赋值
ps.setTimestamp(3,new Timestamp(student.getCreateTime().getTime()));
// 为sql语句中第三个问号赋值
resultSet = ps.executeUpdate();
// 当成功插入数据到数据库时候,这个会返回一个大于1的数字,来表明数据成功插入库之中
}
} catch (SQLException e) {
e.printStackTrace();
}
return resultSet > 0;
}
3、Jsp
JSP通过Servlet访问数据库。当用户访问服务器时,JDBC访问数据库,获取数据,通过Servlet返回给JSP页面,然后JSP页面展示数据。它使用JSP标签在HTML网页中插入Java代码。标签通常以<%开头以%>结束。
例如homeworkSubmission.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>作业详细信息</title>
</head>
<body>
<h2 align="center" style="margin: 50px">作业详细内容</h2>
<table align="center" width="960" border="1">
<tr bgcolor="aqua">
<th width="10%">学号</th>
<th width="10%">作业编号</th>
<th width="20%">作业标题</th>
<th width="40%">作业内容</th>
<th width="20%">创建时间</th>
</tr>
<%
List<StudentHomework> list = (List<StudentHomework>)request.getAttribute("list");
if (list == null || list.size() <= 0){
}else {
for (StudentHomework sh : list) {
%>
<tr>
<td width="10%"><%=sh.getStudentId()%></td>
<td width="10%"><%=sh.getHomeworkId()%></td>
<td width="20%" style="word-break: break-all;word-wrap: break-word"><%=sh.getHomeworkTitle()%></td>
<td width="40%" style="word-break: break-all;word-wrap: break-word"><%=sh.getHomeworkContent()%></td>
<td width="20%"><%=sh.getCreateTime()%></td>
</tr>
<%
}
}
%>
</table>
</body>
</html>
页面实现
发布作业:
添加学生:
教师查看作业:
学生提交作业:
Github地址 https://github.com/Hunteryer/Java-EE-02.