|
发表于 2024-11-8 15:18:22
|
显示全部楼层
要创建学生数据库及相关表,并开发一个简单的Java Web应用程序用于提交和查询学生成绩,您可以按照以下步骤进行:
### 第一步:设置数据库
1. **创建数据库**
- CREATE DATABASE student;
- USE student;
复制代码
2. **创建学生信息表 `message`**
- CREATE TABLE message (
- sno INT PRIMARY KEY,
- sname VARCHAR(100),
- birthday DATE,
- major VARCHAR(100)
- );
复制代码
3. **创建成绩表 `score`**
- CREATE TABLE score (
- sno INT,
- cno INT,
- cname VARCHAR(100),
- sscore FLOAT,
- PRIMARY KEY (sno, cno)
- );
复制代码
4. **插入示例数据**
- INSERT INTO message (sno, sname, birthday, major) VALUES
- (1, 'Alice', '2000-01-01', 'Computer Science'),
- (2, 'Bob', '1999-05-15', 'Mathematics');
- INSERT INTO score (sno, cno, cname, sscore) VALUES
- (1, 101, 'Java', 85.5),
- (1, 102, 'Database', 90.0),
- (2, 101, 'Java', 88.0),
- (2, 103, 'Calculus', 92.5);
复制代码
### 第二步:创建Java Web项目
1. **项目结构**
- 创建一个Java Web项目,使用Servlet来处理表单提交和查询。
- 需要使用JSP来创建表单和显示结果。
2. **添加依赖**
- 确保项目中配置了连接MySQL数据库的JDBC驱动。
3. **实现表单提交**
- 创建 `index.jsp` 文件,用于输入学生成绩。
- <form action="SubmitScoreServlet" method="post">
- Student No: <input type="text" name="sno"><br>
- Course No: <input type="text" name="cno"><br>
- Course Name: <input type="text" name="cname"><br>
- Score: <input type="text" name="sscore"><br>
- <input type="submit" value="Submit Score">
- </form>
复制代码
4. **处理表单提交的 Servlet**
- 创建 `SubmitScoreServlet` 用于处理表单提交。
- import java.io.IOException;
- 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.sql.Connection;
- import java.sql.DriverManager;
- import java.sql.PreparedStatement;
- @WebServlet("/SubmitScoreServlet")
- public class SubmitScoreServlet extends HttpServlet {
- protected void doPost(HttpServletRequest request, HttpServletResponse response)
- throws ServletException, IOException {
- String sno = request.getParameter("sno");
- String cno = request.getParameter("cno");
- String cname = request.getParameter("cname");
- String sscore = request.getParameter("sscore");
- try {
- // 连接数据库
- Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/student", "root", "password"); // 请使用您的数据库用户名和密码
- PreparedStatement ps = conn.prepareStatement("INSERT INTO score (sno, cno, cname, sscore) VALUES (?, ?, ?, ?)");
- ps.setInt(1, Integer.parseInt(sno));
- ps.setInt(2, Integer.parseInt(cno));
- ps.setString(3, cname);
- ps.setFloat(4, Float.parseFloat(sscore));
- ps.executeUpdate();
- conn.close();
- } catch (Exception e) {
- e.printStackTrace();
- }
- response.sendRedirect("ShowScoresServlet");
- }
- }
复制代码
5. **查询成绩的Servlet**
- 创建 `ShowScoresServlet` 用于查询和展示所有学生的成绩。
- import java.io.IOException;
- 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.PrintWriter;
- import java.sql.Connection;
- import java.sql.DriverManager;
- import java.sql.ResultSet;
- import java.sql.Statement;
- @WebServlet("/ShowScoresServlet")
- public class ShowScoresServlet extends HttpServlet {
- protected void doGet(HttpServletRequest request, HttpServletResponse response)
- throws ServletException, IOException {
- response.setContentType("text/html;charset=UTF-8");
- PrintWriter out = response.getWriter();
- try {
- // 连接数据库
- Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/student", "root", "password");
- Statement stmt = conn.createStatement();
- String sql = "SELECT m.sno, m.sname, s.cname, s.sscore FROM message m JOIN score s ON m.sno = s.sno";
- ResultSet rs = stmt.executeQuery(sql);
- out.println("<table border='1'><tr><th>Student No</th><th>Name</th><th>Course</th><th>Score</th></tr>");
- while (rs.next()) {
- out.println("<tr><td>" + rs.getInt("sno") + "</td><td>" + rs.getString("sname") + "</td><td>" +
- rs.getString("cname") + "</td><td>" + rs.getFloat("sscore") + "</td></tr>");
- }
- out.println("</table>");
- conn.close();
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
- }
复制代码
6. **部署并运行**
- 将项目部署到支持Java Web的应用服务器(如Apache Tomcat)。
- 访问 `index.jsp` 页面,输入学生成绩并提交,查看提交和查询是否正确显示。
以上步骤可以帮助您创建并运行一个简单的Java Web应用程序来管理学生成绩。如果有其他问题,请随时问我!
以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。 |
|