本文是MySQL+java: 实现学生成绩管理系统(1.0版本)
我的学生成绩管理系统系列相关文章:
- JDBC+MySQL小练习:MySQL+java: 实现学生成绩管理系统(2.0版本)
此项目在 本文 代码基础上进行改进:
- 使用配置文件方式封装实现数据库的连接与关闭
- 封装通用增删改查SQL语句,方便扩展功能
- 避免菜单重复创建Scanner对象
- 提高代码可读性
Service+Dao(两层)
- Spring入门小练习: Spring 实现学生成绩管理系统(完整代码)
此项目在 学生成绩管理系统2.0 版本基础上进行改进:
- 将结构分成Sevice和Dao两层,对冗余代码进行简化
- 使用
Druid
数据库连接池技术- 应用
Spring JdbcTemplate
模板封装增删改查SQL语句- 使用xml方式和注解方式实现IOC的bean管理
- MyBatis入门小练习:Mybatis 基于注解方式实现学生成绩管理系统(完整代码)
此项目在 Spring 实现学生成绩管理系统 版本基础上进行改进:
- 在Dao层使用
Mybatis
注解方式实现CRUD,不再需要接口实现类;- 封装统计功能返回结果的实体类;
- 在Service层使用注解方式获取bean;
- 优化了菜单的返回确认功能。
- Spring+Mybatis小练习:整合Spring+Mybatis 学生成绩管理系统(完整代码)
此项目在 Spring实现学生成绩管理系统 和 Mybatis 基于注解方式实现学生成绩管理系统 版本基础上进行改进:
- 基于
mybatis-spring
整合Spring
和Mybatis
;- 使用xml文件方式实现CRUD和获取bean;
- 使用
Druid
数据库连接池
JavaWeb项目(三层)
- JavaWeb基础小练习:JavaWeb+MySQL实现学生成绩管理系统(3.0版本)
此项目在 学生成绩管理系统2.0版本 基础上进行改进:
- 使用
Servlet+JSP
实现Web层,完整实现B/S三层架构;- 使用
Druid
数据库连接池技术;- 应用
DBUtils
封装数据库增删改查;- 增加了用户注册和登录功能
- SSM框架整合练习:SSM 实现学生成绩管理系统(完整代码)
此项目基于 JavaWeb+MySQL实现学生成绩管理系统(3.0版本) 进行改进。主要改进内容有:
- 使用
Spring+SpringMVC+Mybatis
框架实现,代替原生Servlet
处理请求转发;- 使用
SpringMVC
拦截器判断用户是否登录,在注册页面使用验证码;- 使用
SpringMVC
的ControllerAdvice
实现全局异常处理;- 使用
Spring
注解式事务管理;- 使用分页模型显示所有学生信息,在主页基础上实现增加、删除、修改、统计功能,在前端页面上增加更多交互功能和提示。
本项目基于SSM 实现学生成绩管理系统(完整代码)进行改进。主要改进内容有:
- 使用
SpringBoot
一站式框架实现,代替Spring+SpringMVC+Mybatis
多个框架,减少配置文件数量;- 使用
SpringBoot
的自定义错误页面、使用拦截器判断用户是否登录、使用注解式事务管理;- 前端使用
HTML+Thymeleaf
模板引擎,不再使用jsp;- 在注册页面使用Kaptcha验证码;
- 使用
Redis
实现用户注册、登录功能;- 使用
MyBatisPlus
实现分页模型显示所有学生信息;- 使用
Echarts
对统计结果实现可视化;- 使用
Slf4j
实现日志功能。
- SpringBoot+分布式: SpringBoot+Redis+Consul:实现学生成绩管理系统 分布式+邮箱功能(完整代码)
本项目基于 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