IDEA+JSP+Servlet+Tomcat实现的学生成绩管理系统

IDEA+JSP+Servlet+Tomcat实现的学生成绩管理系统

学生成绩管理系统

一、系统介绍

软件环境
OS:Windows10
IDEA:2017.3.5
Java:jdk1.8
Mysql:8.0.13
Bootstrap:bootstrap.min.css
Juqery:jquery-ui-1.10.4.custom.min.css
Tomcat:9.0.52
Browser:Microsoft Edge

该图书管理系统实现了学生的成绩管理。学生实现了登录登出功能,查看成绩功能。教师端实现了注册登录,对学生成绩和信息进行增删改查的功能,实现Execl导出成绩功能。
数据库有三张表:一张是学生表(student),一张是教师表(teacher),一张是成绩表(score)。
在这里插入图片描述
在这里插入图片描述

二、系统展示

登录页面
在这里插入图片描述
注册页面
在这里插入图片描述
教师端学生成绩管理
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
学生端
在这里插入图片描述
在这里插入图片描述
退出页面
在这里插入图片描述

三、代码实现

1.后端实现
Score

package vo;

public class Score {
   
    private String id;
    private String database;
    private String android;
    private String jsp;

    public String getId() {
   
        return id;
    }

    public void setId(String id) {
   
        this.id = id;
    }

    public String getDatabase() {
   
        return database;
    }

    public void setDatabase(String database) {
   
        this.database = database;
    }

    public String getAndroid() {
   
        return android;
    }

    public void setAndroid(String android) {
   
        this.android = android;
    }

    public String getJsp() {
   
        return jsp;
    }

    public void setJsp(String jsp) {
   
        this.jsp = jsp;
    }
}

Student

package vo;

public class Student {
   
    private String id;
    private String password;
    private String name;
    private String sex;
    private String school_date;
    private String major;
    private String email;

    public String getId() {
   
        return id;
    }

    public void setId(String id) {
   
        this.id = id;
    }

    public String getPassword() {
   
        return password;
    }

    public void setPassword(String password) {
   
        this.password = password;
    }

    public String getName() {
   
        return name;
    }

    public void setName(String name) {
   
        this.name = name;
    }

    public String getSex() {
   
        return sex;
    }

    public void setSex(String sex) {
   
        this.sex = sex;
    }

    public String getSchool_date() {
   
        return school_date;
    }

    public void setSchool_date(String school_date) {
   
        this.school_date = school_date;
    }

    public String getMajor() {
   
        return major;
    }

    public void setMajor(String major) {
   
        this.major = major;
    }

    public String getEmail() {
   
        return email;
    }

    public void setEmail(String email) {
   
        this.email = email;
    }

}

Teacher

package vo;

public class Teacher {
   
    private String id;
    private String password;
    private String email;
    private String name;
    private String sex;

    public String getId() {
   
        return id;
    }

    public void setId(String id) {
   
        this.id = id;
    }

    public String getPassword() {
   
        return password;
    }

    public void setPassword(String password) {
   
        this.password = password;
    }

    public String getEmail() {
   
        return email;
    }

    public void setEmail(String email) {
   
        this.email = email;
    }

    public String getName() {
   
        return name;
    }

    public void setName(String name) {
   
        this.name = name;
    }

    public String getSex() {
   
        return sex;
    }

    public void setSex(String sex) {
   
        this.sex = sex;
    }
}

ScoreDao

package dao;

import vo.Score;
import vo.Student;

import java.sql.*;
import java.util.ArrayList;


public class ScoreDao {
   
    private Connection conn = null;
    static String driver = "com.mysql.jdbc.Driver";
    static String url = "jdbc:mysql:///pby?serverTimezone=GMT%2B8";
    static String user = "root";
    static String password="root";
    /**
     * 录入成绩
     * @param id
     * @return
     * @throws Exception
     */
    /**
     * 初始化数据库连接
     *
     * @throws Exception
     */
    private void initConnection() throws Exception {
   
        Class.forName(driver);
        conn = DriverManager.getConnection(url, user, password);
    }

    /**
     * 关闭连接
     *
     * @throws Exception
     */
    private void closeConnection() throws Exception {
   
        conn.close();
    }
    public boolean insertScore(String id) throws Exception{
   
        initConnection();
        String sql = "insert into score(id) values(?)";
        PreparedStatement ps = conn.prepareStatement(sql);
        ps.setString(1, id);
        int i = ps.executeUpdate();
        closeConnection();
        return i == 1;
    }
    /**
     * 删除成绩
     * @param id
     * @return
     * @throws Exception
     */
    public boolean deleteScore(String id) throws Exception{
   
        initConnection();
        Statement stat = conn.createStatement();
        String sql = "delete from score where id='"+id+"'";
        int i = stat.executeUpdate(sql);
        closeConnection();
        return i==1;
    }
    /**
     * 更新成绩
     * @param id
     * @param database
     * @param android
     * @param jsp
     * @throws Exception
     */
    public void updateScoreInfo(String id, String database, String android, String jsp) throws Exception{
   
        initConnection();
        String sql = "update score set dat=?, android=?, jsp=? where id=?";
        PreparedStatement ps = conn.prepareStatement(sql);
        ps.setString(1, database);
        ps.setString(2, android);
        ps.setString(3, jsp);
        ps.setString(4, id);
        ps.executeUpdate();
        closeConnection();
    }
    /**
     * 以id查找信息
     * @param id
     * @return
     * @throws Exception
     */
    public Score findWithId(String id) throws Exception{
   
        initConnection();
        Statement stat = conn.createStatement();
        String sql = "select * from score where id = '" + id + "'";
        ResultSet rs = stat.executeQuery(sql);
        Score stu = getScore(rs);
        closeConnection();
        return stu;
    }
    /**
     * 分页查询
     * @param page
     * @param size
     * @return
     * @throws Exception
     */
    public ArrayList<Score> getOnePage(int page, int size) throws Exception{
   
        ArrayList<Score> al = new ArrayList<>();
        initConnection();
        String sql = "SELECT * FROM score limit ?, ?";
        PreparedStatement ps = conn.prepareStatement(sql);
        ps.setInt(1, (page-1)*size);
        ps.setInt(2, size);
        ResultSet rs =  ps.executeQuery();
//        getMoreScore(al, rs);
        closeConnection();
        return al;
    }
    /**
     * 查询总数
     * @return
     * @throws Exception
     */
    public int getScoreCount() throws Exception{
   
        initConnection();
        String sql = "select count(*) from score";
        Statement stat = conn.createStatement();
        ResultSet rs = stat.executeQuery(sql);
        rs.next();
        int count = rs.getInt(1);
        closeConnection();
        return count;
    }
/**
 * 获取成绩
 * @param rs
 * @return
 * @throws SQLException
 */
private Score getScore(ResultSet rs) throws SQLException {
   
    Score stu = null;
    if (rs.next()){
   
        stu = new Score();
        stu.setId(rs.getString("id"));
        stu.setDatabase(rs.getString("dat"));
        stu.setAndroid(rs.getString("android"));
        stu.setJsp(rs.getString("jsp"));
    }
    return stu;
}
    /**
     * 获取所有成绩
     * @param al
     * @param rs
     * @throws SQLException
     */
    private void getMoreStudent(ArrayList<Student> al, ResultSet rs) throws SQLException {
   
        while (rs.next()){
   
            Student stu = new Student();
            stu.setId(rs.getString("id"));
            stu.setPassword(rs.getString("password"));
            stu.setName(rs.getString("name"));
            stu.setSex(rs.getString("sex"));
            stu.setSchool_date(rs.getString("school_date"));
            stu.setMajor(rs.getString("major"));
            stu.setEmail(rs.getString("email"));
            al.add(stu);
        }
    }

}

StudentDao

package dao;

import vo.Student;

import java.sql.*;
import java.util.ArrayList;

public class StudentDao {
   
    private Connection conn = null;
    // 定义数据常量
    static String driver = "com.mysql.jdbc.Driver";
    static String url = "jdbc:mysql:///pby?serverTimezone=GMT%2B8";
    static String user = "root";
    static String password = "root";

    /**
     * 初始化数据库连接
     *
     * @throws Exception
     */
    private void initConnection() throws Exception {
   
        Class.forName(driver);
        conn = DriverManager.getConnection(url, user, password);
    }

    /**
     * 关闭连接
     *
     * @throws Exception
     */
    private void closeConnection() throws Exception {
   
        conn.close();
    }

    /**
     * 验证学生账号和密码
     *
     * @param user
     * @param password
     * @return
     * @throws Exception
     */
    public Student checkAccount(String user, String password) throws Exception {
   
        initConnection();
        Statement stat = conn.createStatement();
        String sql = "select * from student where id = '" + user + "' and password = '" + password + "'";
        ResultSet rs = stat.executeQuery(sql);
        Student stu = getStudent(rs);
        closeConnection();
        return stu;
    }

    /**
     * 使用学生id来查找学生信息
     *
     * @param id
     * @return
     * @throws Exception
     */
    public Student findWithId(String id) throws Exception {
   
        initConnection();
        Statement stat = conn.createStatement();
        String sql = "select * from student where id = '" + id + "'";
        ResultSet rs = stat.executeQuery(sql);
        Student stu = getStudent(rs);
        closeConnection();
        return stu;
    }
    /**
     * 使用学生姓名查找学生信息
     *
     * @param name
     * @return
     * @throws Exception
     */
    public ArrayList<Student> findWithName(String name) throws Exception {
   
        ArrayList<Student> al = new ArrayList<>();
        initConnection();
        Statement stat = conn.createStatement();
        String sql = "select * from student where name = '" + name + "'";
        ResultSet rs = stat.executeQuery(sql);
        getMoreStudent(al, rs);
        closeConnection();
        return al;
    }
    /**
     * 添加学生信息
     *
     * @param id
     * @param name
     * @param sex
     * @param school_date
     * @param major
     * @return
     * @throws Exception
     */
    public boolean insertStudent(String id, String name, String sex, String school_date, String major) throws Exception {
   
        initConnection();
        String sql = "insert into student(id, name, sex, school_date, major) values(?, ?, ?, ?, ?)";
        PreparedStatement ps = conn.prepareStatement(sql);
        ps.setString(1, id);
        ps.setString(2, name);
        ps.setString(3, sex);
        ps.setString(4, school_date);
        ps.setString(5, major);
        int i = ps.executeUpdate();
        closeConnection();
        return i == 1;
    }
    /**
     * 删除学生信息
     *
     * @param id
     * @return
     * @throws Exception
     */
    public boolean deleteStudent(String id) throws Exception {
   
        initConnection();
        Statement stat = conn.createStatement();
        String sql = "delete from student where id='" + id + "'";
        int i = stat.executeUpdate(sql);
        closeConnection();
        return i == 1;
    }
    /**
     * 获取每页的信息
     *
     * @param page
     * @param size
     * @return
     * @throws Exception
     */
    public ArrayList<Student> getOnePage(int page, int size) throws Exception {
   
        ArrayList<Student> al = new ArrayList<>();
        initConnection();
        String sql = "SELECT * FROM student limit ?, ?";
        PreparedStatement ps = conn.prepareStatement(sql);
        ps.setInt(1, (page - 1) * size);
        ps.setInt(2, size);
        ResultSet rs = ps.executeQuery();
        getMoreStudent(al, rs);
        closeConnection();
        return al;
    }
    /**
     * 获取学生总数
     *
     * @return
     * @throws Exception
     */
    public int getStudentCount() throws Exception {
   
        initConnection();
        String sql = "select count(*) from student";
        Statement stat = conn.createStatement();
        ResultSet rs = stat.executeQuery(sql);
        rs.next();
        int count = rs.getInt(1);
        closeConnection();
        return count;
    }
    /**
     * 更新学生信息
     *
     * @param id
     * @param name
     * @param sex
     * @param major
     * @throws Exception
     */
    public void updateStudentInfo(String id, String name, String sex, String major) throws Exception {
   

        initConnection();
        String sql = "update student set name=?, sex=?, major=? where id=?";
        PreparedStatement ps = conn.prepareStatement(sql);
        ps.setString(1, name);
        ps.setString(2, sex);
        ps.setString(3, major);
        ps.setString(4, id);
        ps.executeUpdate();
        closeConnection();
    }
    /**
     * 更新学生密码和邮件
     *
     * @param id
     * @param email
     * @param password
     * @throws Exception
     */
    public void updateStudentSecurity(String id, String email, String password) throws Exception {
   

        initConnection();
        String sql = "update student set password=?, email=? where id=?";
        PreparedStatement ps = conn.prepareStatement(sql);
        ps.setString(1, password);
        ps.setString(2, email);
        ps.setString(3, id);
        ps.executeUpdate();
        closeConnection();
    }
    /**
     * 获取单个学生信息
     *
     * @param rs
     * @return
     * @throws SQLException
     */
    private Student getStudent(ResultSet rs) throws SQLException {
   
        Student stu = null;
        if (rs.next()) {
   
            stu = new Student();
            stu.setId(rs.getString("id"));
            stu.setPassword(rs.getString("password"));
            stu.setName(rs.getString("name"));
            stu.setSex(rs.getString("sex"));
            stu.setSchool_date(rs.getString("school_date"));
            stu.setMajor(rs.getString("major"));
            stu.setEmail(rs.getString("email"));
        }
        return stu;
    }
    /**
     * 获取多个学生信息
     *
     * @param al
     * @param rs
     * @throws SQLException
     */
    private void getMoreStudent(ArrayList<Student> al, ResultSet rs) throws SQLException {
   
        while (rs.next()) {
   
            Student stu = new Student();
            stu.setId(rs.getString("id"));
            stu.setPassword(rs.getString("password"));
            stu.setName(rs.getString("name"));
            stu.setSex(rs.getString("sex"));
            stu.setSchool_date(rs.getString("school_date"));
            stu.setMajor(rs.getString("major"));
            stu.setEmail(rs.getString("email"));
            al.add(stu);
        }
    }
    public static void main(String[] args) throws Exception{
   
        StudentDao studentDao=new StudentDao();
        studentDao.initConnection();
        System.out.println("数据库连接成功");
        studentDao.closeConnection();
    }

}

TeacherDao

package dao;

import vo.Teacher;

import java.sql.*;

public class TeacherDao {
   
    private Connection conn = null;
    // 定义数据常量
    static String driver = "com.mysql.jdbc.Driver";
    static String url = "jdbc:mysql:///pby?serverTimezone=GMT%2B8";
    static String user = "root";
    static String password = "root";

    /**
     * 初始化数据库连接
     *
     * @throws Exception
     */
    private void initConnection() throws Exception {
   
        Class.forName(driver);
        conn = DriverManager.getConnection(url, user, password);
    }

    /**
     * 关闭连接
     *
     * @throws Exception
     */
    private void closeConnection() throws Exception {
   
        conn.close();
    }
    public Teacher checkAccount(String id, String password) throws Exception {
   
        initConnection();
        Statement stat = conn.createStatement();
        String sql = "select * from teacher where id = '" + id + "' and password = '" + password + "'";
        ResultSet rs = stat.executeQuery(sql);
        Teacher tea = getTeacher(rs);
        closeConnection();
        return tea;
    }

    /**
     * 使用教师id来查询教师信息
     * @param id
     * @return
     * @throws Exception
     */
    public Teacher findWithId(String id) throws
学生成绩管理系统是一个比较典型的Web应用程序,可以使用Java ServletJSP技术实现。下面是一个简单的实现步骤: 1. 确定系统功能和设计数据库表 首先,我们需要确定学生成绩管理系统的功能需求,例如学生信息管理、课程信息管理、成绩录入和查询等等。然后,设计数据库表格以存储数据。 例如,我们可以设计以下几个表格: 学生表(Student):学生ID、姓名、性别、出生日期、联系方式等。 课程表(Course):课程ID、课程名称、学分等。 成绩表(Score):学生ID、课程ID、成绩等。 2. 创建项目和配置环境 使用IntelliJ IDEA创建一个Web项目,然后配置环境。我们需要配置Tomcat服务器、MySQL数据库连接和JDBC驱动程序等。 3. 实现数据访问层 在项目中创建一个Java类,用于实现数据库的访问操作。我们可以使用JDBC技术连接数据库,然后实现数据的增删改查操作。 4. 实现业务逻辑层 在项目中创建另一个Java类,用于实现业务逻辑。例如,实现学生信息管理、课程信息管理、成绩录入和查询等功能。 5. 实现表示层 使用JSP技术实现用户界面,为用户提供交互界面。例如,实现学生信息管理页面、课程信息管理页面、成绩录入页面和查询页面等。 6. 部署和测试系统 最后,我们需要将项目部署到Tomcat服务器上,并测试学生成绩管理系统的功能和性能。 总之,使用IntelliJ IDEAJava ServletJSP、MySQL和Tomcat等技术实现学生成绩管理系统是非常简单的。只需要按照上述步骤一步步实现,就可以得到一个完整的Web应用程序。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值