简陋的学生作业管理系统
基本功能有:老师:添加学生,添加作业,查询作业
学生:根据已有作业进行提交
比较简陋,没有设置权限上图是主界面,可点击相应连接进入对应界面
学生提交作业界面
作业查询界面
老师添加作业界面
老师添加学生界面
代码主要分为实体类,jdbc,servlet和jsp几部分,忽略test部分
主要展示一下jdbc,servlet和jsp部分
jdbc部分与MySQL连接,并传输数据:
学习jdbc可参照:https://www.runoob.com/w3cnote/jdbc-use-guide.html
public class Homeworkjdbc {
public static void addHomework(Homework h){
String url="jdbc:mysql://127.0.0.1:3306/school?useUnicode=true&characterEncoding=utf-8&useSSL=false";
String driverName="com.mysql.jdbc.Driver";
String insert_sql = "insert into school.s_homework (title,content,create_time,update_time) "
+ "VALUES (?,?,?,?)";
try(Connection connection= DriverManager.getConnection(url,"root","123456")){
PreparedStatement stat = connection.prepareStatement(insert_sql);
stat.setString(1, h.getTitle());
stat.setString(2, h.getContent());
stat.setObject(3, h.getCreateTime());
stat.setObject(4, h.getUpdateTime());
int i = stat.executeUpdate();
}catch (SQLException e) {
e.printStackTrace();
}
}
}在这里插入代码片
public class StudentHomeworkjdbc {
public static void addStudentHomework(Long studentid,Long homeworkid){
String url="jdbc:mysql://127.0.0.1:3306/school?useUnicode=true&characterEncoding=utf-8&useSSL=false";
String driverName="com.mysql.jdbc.Driver";
String selects_sql="select * from school.s_student where id='"+studentid+"'";
String selecth_sql="select * from school.s_homework where id='"+homeworkid+"'";
boolean fs=false;
boolean fh=false;
StudentHomework sh=new StudentHomework();
Student s=new Student();
Homework h=new Homework();
try{
Connection connection= DriverManager.getConnection(url,"root","123456");
Statement statement=connection.createStatement();
ResultSet resultSet=statement.executeQuery(selects_sql);
while(resultSet.next()){
if(resultSet.getLong("id")==studentid){
s.setId(resultSet.getLong("id"));
s.setName(resultSet.getString("name"));
fs=true;
}
}
ResultSet resultSet2=statement.executeQuery(selecth_sql);
while(resultSet2.next()){
if(resultSet2.getLong("id")==homeworkid){
h.setId(resultSet2.getLong("id"));
h.setTitle(resultSet2.getString("title"));
h.setContent(resultSet2.getString("content"));
fh=true;
}
}
}catch (SQLException e) {
e.printStackTrace();
}
if(fs==true&&fh==true){
sh.setStudentId(s.getId());
sh.setHomeworkId(h.getId());
sh.setHomeworkTitle(h.getTitle());
sh.setHomeworkContent(h.getContent());
Date date = new Date();
sh.setCreateTime(date);
sh.setUpdateTime(date);
String insert_sql = "insert into school.s_student_homework (student_id,homework_id,homework_title" +
",homework_content,create_time,update_time) VALUES (?,?,?,?,?,?)";
try(Connection connection= DriverManager.getConnection(url,"root","123456")){
PreparedStatement stat = connection.prepareStatement(insert_sql);
stat.setLong(1,sh.getStudentId());
stat.setLong(2,sh.getHomeworkId());
stat.setString(3, sh.getHomeworkTitle());
stat.setString(4, sh.getHomeworkContent());
stat.setObject(5, sh.getCreateTime());
stat.setObject(6, sh.getUpdateTime());
int i = stat.executeUpdate();
}catch (SQLException e) {
e.printStackTrace();
}
}
}
public static List<StudentHomework> selectAll(){
String url="jdbc:mysql://127.0.0.1:3306/school?useUnicode=true&characterEncoding=utf-8&useSSL=false";
String driverName="com.mysql.jdbc.Driver";
String sqlString="select * from school.s_student_homework";
try {
Class.forName(driverName);
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
List<StudentHomework> list = new ArrayList<>();
try(Connection connection= DriverManager.getConnection(url,"root","123456")){
try(Statement statement=connection.createStatement()){
try(ResultSet resultSet=statement.executeQuery(sqlString)){
while(resultSet.next()){
StudentHomework sh = new StudentHomework();
sh.setId(resultSet.getLong("id"));
sh.setStudentId(resultSet.getLong("student_id"));
sh.setHomeworkId(resultSet.getLong("id"));
sh.setHomeworkTitle(resultSet.getString("homework_title"));
sh.setHomeworkContent(resultSet.getString("homework_content"));
sh.setCreateTime(resultSet.getTimestamp("create_time"));
list.add(sh);
}
}
}
}catch (SQLException e) {
e.printStackTrace();
}
return list;
}
}
public class Studentjdbc {
public static void addStudent(Student s){
String url="jdbc:mysql://127.0.0.1:3306/school?useUnicode=true&characterEncoding=utf-8&useSSL=false";
String driverName="com.mysql.jdbc.Driver";
String insert_sql = "insert into school.s_student VALUES (?,?,?,?)";
try(Connection connection= DriverManager.getConnection(url,"root","123456")){
PreparedStatement stat = connection.prepareStatement(insert_sql);
stat.setLong(1, s.getId());
stat.setString(2, s.getName());
stat.setObject(3, s.getCreateTime());
stat.setObject(4, s.getUpdateTime());
int i = stat.executeUpdate();
}catch (SQLException e) {
e.printStackTrace();
}
}
}
servlet进行网页端和数据库的数据传输:
@WebServlet("/addHomework")
public class AddHomeworkServlet extends HttpServlet {
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
Homework h = new Homework();
h.setTitle(req.getParameter("title"));
h.setContent(req.getParameter("content"));
Date date = new Date();
h.setCreateTime(date);
h.setUpdateTime(date);
Homeworkjdbc.addHomework(h);
}
}
@WebServlet("/addStudentHomework")
public class AddStudentHomeworkServlet extends HttpServlet {
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
Long studentid=(Long.valueOf(req.getParameter("student_id")));
Long homeworkid=(Long.valueOf(req.getParameter("homework_id")));
StudentHomeworkjdbc.addStudentHomework(studentid,homeworkid);
}
}
@WebServlet("/addStudent")
public class AddStudentServlet extends HttpServlet {
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
Student s= new Student();
s.setId(Long.valueOf(req.getParameter("id")));
s.setName(req.getParameter("name"));
Date date = new Date();
s.setCreateTime(date);
s.setUpdateTime(date);
Studentjdbc.addStudent(s);
}
}
@WebServlet("/list")
public class StudentHomeworkServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
List<StudentHomework> list = StudentHomeworkjdbc.selectAll();
req.setAttribute("list",list);
req.getRequestDispatcher("StudentHomework.jsp").forward(req,resp);
}
}
jsp部分,展示和获取数据的网页:
<html>
<head>
<title>Add Student</title>
</head>
<body>
<form action="addStudent" method="post">
<label> ID:</label>
<input type="text" name="id" placeholder="输入id" />
<label> Name:</label>
<input type="text" name="name" placeholder="输入name" />
<input type="submit" value="确认"/>
</form>
</body>
</html>
<html>
<head>
<title>Student Homework</title>
</head>
<body>
<table align="center" width="960" border="1" bgcolor="#ffebcd" cellpadding="1" cellspacing="1">
<tr align="center" bgcolor="#cd5c5c" height="50">
<td>ID</td>
<td>学生学号</td>
<td>作业编号</td>
<td>作业标题</td>
<td>作业内容</td>
<td>创建时间</td>
</tr>
<%
List<StudentHomework> list = (List<StudentHomework>) StudentHomeworkjdbc.selectAll();
if(null==list||list.size()<=0){
out.println("None data.");
}else{
for(StudentHomework sh:list){
%>
<tr align="center" height="30">
<td><%=sh.getId()%></td>
<td><%=sh.getStudentId()%></td>
<td><%=sh.getHomeworkId()%></td>
<td><%=sh.getHomeworkTitle()%></td>
<td><%=sh.getHomeworkContent()%></td>
<td><%=sh.getCreateTime()%></td>
</tr>
<%
}
}
%>
</table>
</body>
</html>
通过完成这个小项目,掌握了一些知识点,比如jdbc中的插入语句,以及一些HTML中标签的使用,例如中的action应该为对应servlet的url值。