基于Java高级编程课设,在对单个数据库增删改查的基础之上,学完数据库系统原理与实现后,今天尝试对多表操作进行操作
下图是2024.1.10下午和晚上的一点时间写的代码(Day1):
以下是部分代码展示(Day1源码私信):
后端学生成绩Dao层接口实现类代码:
功能:实现输入学生姓名和课程号查询对应的成绩(数据表student、grade、course之间的关系)
/*2024.1.10
*
* written by whw
*
* */
@Override
public List<Grade> selectGradeByStunameAndCourse_name(String stuname,String course_name) {
List<Grade> grade = new ArrayList<Grade>();
try {
conn = DatabaseBean.getConnection();
String sql = "select score from grade where stuno in(select stuno from student where stuname=?)and course_id in (select course_id from course where course_name=?)";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1,stuname);
pstmt.setString(2,course_name);
rs = pstmt.executeQuery();
while (rs.next()) {
Grade gra = new Grade();
gra.setScore(rs.getString("score"));
grade.add(gra);
}
} catch (Exception e) {
e.printStackTrace();
} finally {
DatabaseBean.close(rs, pstmt, conn);
}
return grade;
}
前端简单页面,css语言了解的不够深,目前只会简单的页面:
前端代码:
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>根据学生姓名和课程名查询学生成绩信息</title>
</head>
<body>
<div align="center">
<form action="grade/selectGradeByStunameAndCourse_name">
<h2>学生成绩信息一览表</h2>
请输入要查询学生的姓名:<input type="text" name="stuname">
<br>
请输入要查询课程的名称:<input type="text" name="course_name">
<input type="submit" value="查询">
</form>
<c:if test="${empty grade}">
无学生成绩信息!<br>
</c:if>
<c:if test="${!empty grade}">
<br>
<table border="1">
<tr>
<th>成绩</th>
</tr>
<c:forEach var="s" items="${grade }">
<tr>
<td>${s.score }</td>
</tr>
</c:forEach>
</table>
</c:if>
</div>
</body>
</html>
效果展示:
输入学生姓名为王宏伟,课程名称为数据:
对应的数据库表:
课程表:
成绩表:
学生表:
后端基础开发各部分之间的关系图: