一、项目简介
这是学习javaee的一个简单的学生作业管理项目,项目中运用了jsp,servlet,mysql以及tomcat相关的知识.
二、项目结构
三、具体流程图
四、数据库表介绍
1、s_student
2、s_homework
3、s_student_homework
四、源码介绍
1、学生实体类 Student.java
package com.javaee.code.model;
import java.util.Date;
/**
* @author rice
* @version 1.0
* @date 2020/3/13 16:35
*/
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;
}
}
2、连接数据库并进行查看、添加等操作。studentjdbc.java。主要的两个方法是selectAll()以及addStudent(Student s).
package com.javaee.code.jdbc;
import com.javaee.code.model.Student;
import com.javaee.code.model.StudentHomework;
import java.sql.*;
import java.util.ArrayList;
import java.util.List;
/**
* @author rice
* @version 1.0
* @date 2020/3/13 16:38
*/
public class Studentjdbc {
private static String url = "jdbc:mysql://127.0.0.1:3306/school";
private static String driveName = "com.mysql.cj.jdbc.Driver";
public static void main(String[] args) {
List<Student> list = selectAll();
for(Student s:list){
System.out.println(s.getName());
}
}
/**
*
*查询所有学生
*
*/
public static List<Student> selectAll(){
String sqlString = "select * from s_student";
List<Student> list = new ArrayList<Student>();
//创建连接
try {
Class.forName(driveName);
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
try(Connection connection = DriverManager.getConnection(url,"root","root")){
try(Statement statement = connection.createStatement()){
try(ResultSet resultSet = statement.executeQuery(sqlString)){
while(resultSet.next()){
Student s = new Student();
s.setId(resultSet.getLong("id"));
s.setName(resultSet.getString("name"));
s.setCreateTime(resultSet.getTimestamp("create_time"));
list.add(s);
}
}
}
}catch (SQLException e){
e.printStackTrace();
}
return list;
}
/**
* 添加学生
*
*/
public static boolean addStudent(Student s){
String sqlString = "insert into s_student(id,name,create_time) values(?,?,?)";
//创建驱动
try {
Class.forName(driveName);
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
try(Connection connection = DriverManager.getConnection(url,"root","root")){
try(PreparedStatement ps = connection.prepareStatement(sqlString)){
ps.setLong(1,s.getId());
ps.setString(2,s.getName());
ps.setTimestamp(3,new Timestamp(System.currentTimeMillis()));
ps.executeUpdate();
return true;
}
} catch (SQLException e) {
e.printStackTrace();
}
return false;
}
}
3、index.jsp。获取用户的表单输入,使用post方法将用户输入的数据通过servlet传入到数据库中存储。
add.jsp
<%--
Created by IntelliJ IDEA.
User: Rice
Date: 2020/3/13
Time: 17:12
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>添加管理</title>
</head>
<body>
<div>
<h1 align="center">学生作业管理系统</h1>
<form method="post" action="/addStudent">
<fieldset>
<legend> 添加学生</legend>
<br>
student id: <input type="text" name="id">
<br />
student name: <input type="text" name="name" />
<br>
<input type="submit" value="Submit" />
</fieldset>
</form>
<br>
<br>
<form method="post" action="/addHomework">
<fieldset>
<legend> 添加作业</legend>
<br>
homework id: <input type="text" name="id" />
<br />
homework title: <input type="text" name="title" />
<br />
homework content: <input type="text" name="content" />
<br />
<input type="submit" value="Submit" />
<br>
</fieldset>
</form>
</div>
</body>
</html>
4、addStudentServlet.java。web界面与后端的桥梁,此处需格外注意编码问题。
package com.javaee.code.servlet;
import com.javaee.code.jdbc.Studentjdbc;
import com.javaee.code.model.Student;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
/**
* @author rice
* @version 1.0
* @date 2020/3/13 17:16
*/
@WebServlet("/addStudent")
public class AddStudentServlet extends HttpServlet {
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
Student s = new Student();
//设置请求编码方式
req.setCharacterEncoding("UTF-8");
//赋值
s.setId(Long.valueOf(req.getParameter("id")));
s.setName(String.valueOf(req.getParameter("name")));
//数据插入
if(Studentjdbc.addStudent(s))
resp.getWriter().println("successfully add!");
}
}
五、项目运行结果图。
1、首页
2、查看学生作业界面
3、添加界面
4、学生提交作业界面
源码地址:github地址