教师:
1.添加作业
首先构建按照数据库设计的表构建作业实体
Homework.java
package com.java.code.class12.model;
import java.util.Date;
public class Homework {
private long id;
private String title;
private String content;
private Date createTime;
private Date updateTime;
public long getId() {
return id;
}
public String getTitle() {
return title;
}
public String getContent() {
return content;
}
public Date getCreateTime() {
return createTime;
}
public Date getUpdateTime() {
return updateTime;
}
public void setId(long id) {
this.id = id;
}
public void setTitle(String title) {
this.title = title;
}
public void setContent(String content) {
this.content = content;
}
public void setCreateTime(Date createTime) {
this.createTime = createTime;
}
public void setUpdateTime(Date updateTime) {
this.updateTime = updateTime;
}
}
AddHomeworkServlet.java为添加作业的servlet
package com.java.code.class12.servlet;
import jdbc.StudentHomeworkJdbc;
import model.Homework;
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;
import java.io.PrintWriter;
//使用注解形式与jsp通信
@WebServlet("/AddHomeworkServlet")
public class AddHomeworkServlet extends HttpServlet {
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
Homework homework = new Homework();
//使用getParameter函数来获取jsp中的表单内容,其中title和content需要和jsp中name相同
homework.setTitle(req.getParameter("title"));
homework.setContent(req.getParameter("content"));
StudentHomeworkJdbc.addHomework(homework);
}
}
同时在StudentHomeworkJdbc.java中构造相应的添加作业函数
public static void addHomework(Homework sh){
String url = "jdbc:mysql://127.0.0.1:3306/school";
String allUrl = url + "?user=root&password=123456";
String driverName = "com.mysql.jdbc.Driver";
String sqlString = "insert into s_student(title,content)values(?,?)";
//使用PreparedStatement方法执行sql语句
PreparedStatement pstmt;
try {
// 加载驱动
Class.forName(driverName);
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
try(Connection connection = DriverManager.getConnection(allUrl)) {
try(Statement statement = connection.createStatement()){
pstmt = connection.prepareStatement(sqlString);
//此处index值为sql语句中变量的顺序
pstmt.setString(1,sh.getTitle());
pstmt.setString(2,sh.getContent());
pstmt.execute();
}
} catch (SQLException e) {
e.printStackTrace();
}
}
2.查询作业
查询作业就是将各个作业的信息罗列出来
根据数据库表的设计构建学生作业的实体类
StudentHomework.java
package com.java.code.class12.model;
import java.util.Date;
/**
* StudentHomework
*
* @author wangkm
* @date 2020-03-05
* @since 0.0.1
*/
public class StudentHomework {
private Long id;
private Long studentId;
private Long homeworkId;
private String homeworkTitle;
private String homeworkContent;
private Date createTime;
private Date updateTime;
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public Long getStudentId() {
return studentId;
}
public void setStudentId(Long studentId) {
this.studentId = studentId;
}
public Long getHomeworkId() {
return homeworkId;
}
public void setHomeworkId(Long homeworkId) {
this.homeworkId = homeworkId;
}
public String getHomeworkTitle() {
return homeworkTitle;
}
public void setHomeworkTitle(String homeworkTitle) {
this.homeworkTitle = homeworkTitle;
}
public String getHomeworkContent() {
return homeworkContent;
}
public void setHomeworkContent(String homeworkContent) {
this.homeworkContent = homeworkContent;
}
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;
}
}
StudentHomeworkServlet.java
package com.java.code.class12.servlet;
import com.java.code.class12.jdbc.StudentHomeworkJdbc;
import com.java.code.class12.model.StudentHomework;
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;
import java.util.List;
/**
* StudentHomeworkServlet
*
* @author wangkm
* @date 2020-03-05
* @since 0.0.1
*/
@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("index.jsp").forward(req, resp);
}
}
StudentHomeworkJdbc.java中的selectAll()函数用来进行从数据库抽取全部student_homework数据
public static List<StudentHomework> selectAll(){
String url = "jdbc:mysql://127.0.0.1:3306/school";
String allUrl = url + "?serverTimezone=UTC&user=root&password=123456";
String driverName = "com.mysql.cj.jdbc.Driver";
String sqlString = "SELECT * FROM s_student_homework";
try {
// 加载驱动
Class.forName(driverName);
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
List<StudentHomework> list = new ArrayList<>();
try(Connection connection = DriverManager.getConnection(allUrl)) {
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("homework_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;
}
3.添加学生
构建实体类Student.java
Student.java
package com.java.code.class12.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 String getName() {
return name;
}
public Date getCreateTime() {
return createTime;
}
public Date getUpdateTime() {
return updateTime;
}
public void setId(long id) {
this.id = id;
}
public void setName(String name) {
this.name = name;
}
public void setCreateTime(Date createTime) {
this.createTime = createTime;
}
public void setUpdateTime(Date updateTime) {
this.updateTime = updateTime;
}
}
AddStudentServlet.java
package com.java.code.class12.servlet;
import jdbc.StudentHomeworkJdbc;
import model.Homework;
import model.Student;
import model.StudentHomework;
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;
import java.io.PrintWriter;
import java.util.List;
@WebServlet("/AddStudentServlet")
public class AddStudentServlet extends HttpServlet {
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
Student s = new Student();
s.setName(req.getParameter("studentName"));
StudentHomeworkJdbc.addStudent(s);
}
}
学生:提交作业
AddStudentHomeworkServlet.java
package com.java.code.class12.servlet;
import com.java.code.class12.jdbc.StudentHomeworkJdbc;
import com.java.code.class12.model.Homework;
import com.java.code.class12.model.StudentHomework;
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;
import java.io.PrintWriter;
import java.util.List;
/**
* AddStudentHomeworkServlet
*
* @author wangkm
* @date 2020-03-05
* @since 0.0.1
*/
@WebServlet("/AddHomeworkServlet")
public class AddStudentHomeworkServlet extends HttpServlet {
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
Homework homework = new Homework();
//使用getParameter函数来获取jsp中的表单内容,其中title和content需要和jsp中name相同
homework.setTitle(req.getParameter("title"));
homework.setContent(req.getParameter("content"));
StudentHomeworkJdbc.addHomework(homework);
}
}