JavaWeb学生信息管理系统_查询V1.0

  • 项目简介

1)在MySQL数据库中创建一个StudentGradeTable数据表,添加字段FlowId,Type,IdCard,ExamCard,StudentName,Location,Grade并录入几条数据

2)简单实用MVC设计模式,model为StudentDAO.java,view为studentsList.jsp,Controller为ListAllStudent.java,分别实现数据库访问,页面呈现以及前后端控制的功能

3)将数据库内的学生信息,以表格的形式呈现在Web页面上

  • 创建数据库并插入数据

#创建数据库
DROP DATABASE IF EXISTS myWebProject;
CREATE DATABASE myWebProject;
#使用数据库
USE myWebProject;
#创建四六级学生成绩表
CREATE TABLE StudentGradeTable(
	FlowId INT PRIMARY KEY AUTO_INCREMENT,
	`Type` INT NOT NULL,
	IdCard VARCHAR(20) UNIQUE ,
	ExamCard VARCHAR(20) UNIQUE ,
	StudentName VARCHAR(20) NOT NULL,
	Location VARCHAR(20),
	Grade INT  NOT NULL

);
DESC StudentGradeTable;
#插入数据
INSERT INTO StudentGradeTable(`Type`,`IdCard`,`ExamCard`,`StudentName`,`Location`,`Grade`) 
		VALUES(4,'211212199709092345','19970909','小李','泗阳',90);
INSERT INTO StudentGradeTable(`Type`,`IdCard`,`ExamCard`,`StudentName`,`Location`,`Grade`) 
		VALUES(6,'211212199605092345','19960509','小王','贵阳',96);
INSERT INTO StudentGradeTable(`Type`,`IdCard`,`ExamCard`,`StudentName`,`Location`,`Grade`) 
		VALUES(6,'211212199504092345','19950409','小狗','潮汕',120);
INSERT INTO StudentGradeTable(`Type`,`IdCard`,`ExamCard`,`StudentName`,`Location`,`Grade`) 
		VALUES(4,'211212199410102345','19941010','小刘','南通',145);
INSERT INTO StudentGradeTable(`Type`,`IdCard`,`ExamCard`,`StudentName`,`Location`,`Grade`) 
		VALUES(4,'211212199310012345','19931001','小嵇','永城',127);
#查询
SELECT * FROM StudentGradeTable; 
#删除数据表
DROP TABLE IF EXISTS StudentGradeTable;

结果如图所示:

  • 在Web项目中新建一个index.jsp,并添加一个超链接,用于请求数据查询

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<a href="ListAllStudent">查询学生信息</a>
</body>
</html>

 

  • 创建ListAllStudent的Servlet实现类,并在其中调用后面的数据库查询的函数,以及数据请求结束后,跳转至呈现学生信息的页面

package com.njupt.javaweb;

import java.io.IOException;
import java.util.List;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 * Servlet implementation class ListAllStudent
 */
@WebServlet("/ListAllStudent")
public class ListAllStudent extends HttpServlet {
	private static final long serialVersionUID = 1L;

	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		//response.getWriter().append("Served at: ").append(request.getContextPath());
		System.out.println("请求来了。。。");
		List<Student> students = new StudentDAO().getAll();
		//设置属性
		request.setAttribute("studentsList", students);
		//转发
		request.getRequestDispatcher("/studentsList.jsp").forward(request, response);
	}

}
  • 创建Student类,用于将数据库的每条记录转成对象

package com.njupt.javaweb;

public class Student {
	//属性名与数据库一一对应
	private int flowId;
	private int type;
	private String idCard;
	private String examCard;
	private String studentName;
	private String location;
	private int grade;
	//属性的getter与setter方法
	public int getFlowId() {
		return flowId;
	}
	public void setFlowId(int flowId) {
		this.flowId = flowId;
	}
	public int getType() {
		return type;
	}
	public void setType(int type) {
		this.type = type;
	}
	public String getIdCard() {
		return idCard;
	}
	public void setIdCard(String idCard) {
		this.idCard = idCard;
	}
	public String getExamCard() {
		return examCard;
	}
	public void setExamCard(String examCard) {
		this.examCard = examCard;
	}
	public String getStudentName() {
		return studentName;
	}
	public void setStudentName(String studentName) {
		this.studentName = studentName;
	}
	public String getLocation() {
		return location;
	}
	public void setLocation(String location) {
		this.location = location;
	}
	public int getGrade() {
		return grade;
	}
	public void setGrade(int grade) {
		this.grade = grade;
	}
	//方便初始化,写一个带参构造器
	public Student(int flowId, int type, String idCard, String examCard, String studentName, String location,
			int grade) {
		super();
		this.flowId = flowId;
		this.type = type;
		this.idCard = idCard;
		this.examCard = examCard;
		this.studentName = studentName;
		this.location = location;
		this.grade = grade;
	}
	//方便反射,留一个无参构造器
	public Student() {		
	}
	@Override
	public String toString() {
		return "Student [flowId=" + flowId + ", type=" + type + ", idCard=" + idCard + ", examCard=" + examCard
				+ ", studentName=" + studentName + ", location=" + location + ", grade=" + grade + "]";
	}
}
  • 创建StudentDAO.java用于处理数据库信息

package com.njupt.javaweb;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.List;

public class StudentDAO {
	public List<Student> getAll() {
		// 1.准备连接数据库的基本信息
		String driverClass = "com.mysql.jdbc.Driver";
		String jdbcUrl = "jdbc:mysql://localhost:3306/myWebProject";
		String mysqlUser = "root";
		String mysqlPassword = "root";
		// 2.加载数据库驱动
		try {
			Class.forName(driverClass);
		} catch (ClassNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		// 3.获取数据库连接以及处理数据
		Connection conn = null;
		PreparedStatement preparedStatement = null;
		ResultSet resultSet = null;
		String sqlQueryAllStudent = "SELECT * FROM StudentGradeTable";
		List<Student> studentsList = new ArrayList<Student>();
		try {
			conn = DriverManager.getConnection(jdbcUrl, mysqlUser, mysqlPassword);
			preparedStatement = conn.prepareStatement(sqlQueryAllStudent);
			resultSet = preparedStatement.executeQuery();
			while (resultSet.next()) {
				Student stu = new Student(resultSet.getInt(1), resultSet.getInt(2), resultSet.getString(3),
						resultSet.getString(4), resultSet.getString(5), resultSet.getString(6), resultSet.getInt(7));
				studentsList.add(stu);
			}
		} catch (Exception e) {
			// TODO: handle exception
		} finally {
			if (resultSet != null) {
				try {
					resultSet.close();
				} catch (Exception e2) {
					// TODO: handle exception
				}
			}
			if (preparedStatement != null) {
				try {
					preparedStatement.close();
				} catch (Exception e2) {
					// TODO: handle exception
				}
			}
			if (conn != null) {
				try {
					conn.close();
				} catch (Exception e2) {
					// TODO: handle exception
				}
			}
		}
		return studentsList;
	}
}
  • 创建studentsList.jsp用于呈现学生信息

<%@page import="com.njupt.javaweb.Student"%>
<%@page import="java.util.List"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<table border="1" cellspacing="0px" cellpadding="10px">
		<!-- 表格标题 -->
		<caption>学生信息</caption>
		<!-- 表首行 -->
		<tr>
			<th>流水号</th>
			<th>成绩类型</th>
			<th>身份证号</th>
			<th>考试编号</th>
			<th>学生姓名</th>
			<th>家庭住址</th>
			<th>考试成绩</th>
		</tr>
		<%
			List<Student> studentsList = (List<Student>)request.getAttribute("studentsList");
			for(Student stu : studentsList){
				
		%>
				<tr>
					<td><%= stu.getFlowId() %></td>
					<td><%= stu.getType() %></td>
					<td><%= stu.getIdCard() %></td>
					<td><%= stu.getExamCard() %></td>
					<td><%= stu.getStudentName() %></td>
					<td><%= stu.getLocation() %></td>
					<td><%= stu.getGrade() %></td>
				</tr>
		<% 
			}
		%>
	</table>
</body>
</html>
  • 代码运行起来点击“查询学生信息”的超链接后的结果如下

上面代码只是一个Demo仅做参考,和自己学习,还有很多缺陷。

  • 5
    点赞
  • 51
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
学生成绩信息管理系统涉及到学生、教师、系统管理员、班级、学生成绩、课程。设置一个系统管理员对系统进行管理。所有用户需输入账号、密码登录进入系统;管理员进入系统后可对学生、老师、班级、课程进行增删改查操作;学生进入系统,查看成绩、查看和修改自己的信息;老师进入系统后,对自己这门课程的学生设置课程成绩、查看和修改自己的信息,查看学生的信息和成绩、以及统计分析学生的成绩; 管理员为班级设置年级,为年级设置课程,为班级的每门课程设置老师,为学生设置班级。一个年级有多门课程(语文、数学、外语等等),班级的每门课程只能有一名老师,一个老师可以有多门课程;老师选择自己这门课程为该课程的学生登记成绩。老师可以查看其他老师的信息(可以当成是老师的通讯录),查看本课程学生的信息和成绩;学生可以查看班级其他同学的信息(可以看成是班级的同学录)。 考试分为两种,一种是年级统考,一种是平时考试。年级统考需要管理员事先添加一次年级统考,考试成绩出来后,老师进入系统选择该次考试为学生登记成绩。平时考试则是班级平时的考试,老师添加考试信息,登记成绩。成绩统计分析则是针对年级统考进行分析,主要涉及各学科分数名次,总分名次。 技术实现 系统环境:Windows开发工具:IDEAJava版本:JDK 1.8服务器:Tomcat 1.8数据库MySQL 5.X系统采用技术:Servlet+Jsp+Jdbc+H-ui+EasyUI+jQuery+Html+Css+Ajax 系统功能系统主要分为三种用户角色,分别是管理员、老师以及学生,其具体功能如下: - 管理员   学生信息管理、教师信息管理、年级信息管理、班级信息管理、课程信息管理、考试信息管理,系统参数设置 - 老师   教学管理、教师个人信息维护、教师通讯录管理 - 学生考试成绩查询学生通讯录、学生个人信息维护 运行截图 登录界面: 管理员界面: 考试列表:  成绩统计: 学生信息管理: 教师信息管理: 年级、班级信息管理:  系统设置: 教师界面:  成绩登记:  教师通讯录: 个人信息:  学生界面: 学生成绩查询: 班级通讯录: 学生个人信息:              

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值