MySQL+java: 实现学生成绩管理系统(1.0版本)

在这里插入图片描述
本文是MySQL+java: 实现学生成绩管理系统(1.0版本)


我的学生成绩管理系统系列相关文章:

此项目在 本文 代码基础上进行改进:

  • 使用配置文件方式封装实现数据库的连接与关闭
  • 封装通用增删改查SQL语句,方便扩展功能
  • 避免菜单重复创建Scanner对象
  • 提高代码可读性

Service+Dao(两层)

此项目在 学生成绩管理系统2.0 版本基础上进行改进:

  • 将结构分成Sevice和Dao两层,对冗余代码进行简化
  • 使用Druid数据库连接池技术
  • 应用Spring JdbcTemplate模板封装增删改查SQL语句
  • 使用xml方式和注解方式实现IOC的bean管理

此项目在 Spring 实现学生成绩管理系统 版本基础上进行改进:

  • 在Dao层使用Mybatis注解方式实现CRUD,不再需要接口实现类;
  • 封装统计功能返回结果的实体类;
  • 在Service层使用注解方式获取bean;
  • 优化了菜单的返回确认功能。

此项目在 Spring实现学生成绩管理系统Mybatis 基于注解方式实现学生成绩管理系统 版本基础上进行改进:

  • 基于mybatis-spring整合SpringMybatis
  • 使用xml文件方式实现CRUD和获取bean;
  • 使用Druid数据库连接池

JavaWeb项目(三层)

此项目在 学生成绩管理系统2.0版本 基础上进行改进:

  • 使用Servlet+JSP实现Web层,完整实现B/S三层架构;
  • 使用Druid数据库连接池技术;
  • 应用DBUtils封装数据库增删改查;
  • 增加了用户注册和登录功能

此项目基于 JavaWeb+MySQL实现学生成绩管理系统(3.0版本) 进行改进。主要改进内容有:

  • 使用Spring+SpringMVC+Mybatis框架实现,代替原生Servlet处理请求转发;
  • 使用SpringMVC拦截器判断用户是否登录,在注册页面使用验证码;
  • 使用SpringMVCControllerAdvice 实现全局异常处理;
  • 使用Spring注解式事务管理;
  • 使用分页模型显示所有学生信息,在主页基础上实现增加、删除、修改、统计功能,在前端页面上增加更多交互功能和提示。

本项目基于SSM 实现学生成绩管理系统(完整代码)进行改进。主要改进内容有:

  • 使用SpringBoot一站式框架实现,代替Spring+SpringMVC+Mybatis多个框架,减少配置文件数量;
  • 使用SpringBoot的自定义错误页面、使用拦截器判断用户是否登录、使用注解式事务管理;
  • 前端使用HTML+Thymeleaf模板引擎,不再使用jsp;
  • 在注册页面使用Kaptcha验证码;
  • 使用Redis实现用户注册、登录功能;
  • 使用MyBatisPlus实现分页模型显示所有学生信息;
  • 使用Echarts对统计结果实现可视化;
  • 使用Slf4j实现日志功能。

本项目基于 SpringBoot+MyBatisPlus+Redis+Thymeleaf+Echarts: 实现学生成绩管理系统 进行改进。主要改进内容有:

  • 应用SpringCloud H+SpringBoot2 目前主流的开发框架;
  • 项目原有部分拆分为公共模块用户模块学生模块三个模块部署;
  • 使用自带图形界面的Consul作为服务注册中心;
  • 使用Redis实现不同端口的Session共享;
  • 增加邮箱模块,实现向指定邮箱发送学生成绩统计信息;
  • 增加未登录或登录过期页面

准备

1.Java 下载
最新版Java安装教程
Eclipse下载与安装
2.MySQL
专栏-MySQL学习笔记
3.Java 连接 MySQL 需要驱动包,使用以下方法让Java和MySQL连接起来。
让Java和MySQL连接起来

实现

使用MySQL生成表

包括 学号,姓名,成绩,班级四个字段。

USE students;

DROP TABLE IF EXISTS stu_score;
CREATE TABLE IF NOT EXISTS stu_score(
	NO VARCHAR(10),
	NAME VARCHAR(20),
	score FLOAT,
	class INT
);

DESC stu_score;

在这里插入图片描述

本文的java代码部分基于Java 实现学生信息管理系统。本文连接MySQL数据库。
本文在原文的增删改查基础上,增加了班级字段和成绩字段,增加了排序和统计的功能,实现分组统计各班的人数及成绩信息并输出。

建立学生类
//学生姓名、班级、学号、成绩
/**
* @authorAsajuHuishi
*/
public class Stu {
   
	private String no;  //学号
	private String name;  //姓名
	private float score;  //成绩
	private int klass;   //班级 
	//构造函数
  	public Stu(String no, String name, float score, int klass) {
    
  		super();
  		this.no = no;
  		this.name = name;
  		this.score = score;
  		this.klass = klass;
  	}
  	public int getKlass() {
   //缺省构造函数
		return klass;
	}
	public void setKlass(int klass) {
   
		this.klass = klass;
	}
	public Stu() {
   
  		super();
  	}	
	//get set
	public String getNo() {
   
		return no;
	}
  	public void setNo(String no) {
   
	    this.no = no;
  	}
  	public String getName() {
   
  		return name;
  	}
  	public void setName(String name) {
   
  		this.name = name;
  	}
  	public float getScore() {
   
  		return score;
  	}
  	public void setScore(float score) {
   
  		this.score = score;
  	}
}
连接到MySQL数据库
import java.sql.*;
//import java.sql.DriverManager;
//import java.sql.ResultSet;
//import java.sql.SQLException;
//import java.sql.Statement;

public class mySQLutil {
   
    private static final String DRIVER_NAME = "com.mysql.jdbc.Driver";
    private static final String URL = "jdbc:mysql://localhost:3306/Students";//数据库名Students
    private static final String USER = "root";
    private static final String PASS = "123456";

    public static Connection getCon() throws ClassNotFoundException,
            SQLException {
   
        Connection con = null;

        Class.forName(DRIVER_NAME);

        con = DriverManager.getConnection(URL, USER, PASS);

        return con;
    }

    public static void close(Connection con, Statement stmt, ResultSet rs) {
   
        try {
   
            if (rs != null) {
   
                rs.close();
            }
            if (stmt != null) {
   
                stmt.close();
            }
            if (con != null) {
   
                con.close();
            }
        } catch (SQLException e) {
   
            e.printStackTrace();
        }
    }
}

创建一个学生管理数据访问对象

//import java.sql.Connection;
//importjava.sql.PreparedStatement;
//importjava.sql.ResultSet;
//importjava.sql.SQLException;
import java.sql.*;
import java.util.*;

public class StuOperation {
   
	private Connection con;
	private PreparedStatement pstmt;
	private ResultSet rs;
  
	//1.增加学生记录
	public boolean add(Stu stu) {
   
		String sql="insert into stu_score(no,name,score,class) values(?,?,?,?)";
		try {
   
			con = mySQLutil.getCon();//使用连接池数据源获取连接
			pstmt = con.prepareStatement(sql);
			pstmt.setString(1, stu.getNo());
			pstmt.setString(2, stu.getName());
			pstmt.setFloat(3, stu.getScore());
			pstmt.setInt(4, stu.getKlass());
			pstmt.executeUpdate();
		} catch (ClassNotFoundException e) {
   
			e
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值