中南林业科技大学Java实验报告十二:数据库系统设计 - 从0到1搭建java可视化学生管理系统源代码(一)

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL DuckDB 分析主实例,集群系列 8核16GB
云数据库 RDS MySQL,高可用系列 2核4GB
简介: 中南林业科技大学Java实验报告十二:数据库系统设计 - 从0到1搭建java可视化学生管理系统源代码

实验12 数据库系统设计

12.1 实验目的

  1. 掌握MVC设计方法。
  2. 利用JDBC连接数据库,并对数据库进行操作。

12.2 实验内容

12.2.1 设计一个数据库Student,包含成绩表Score,其中属性包含学号,姓名,专业,班级,平均成绩。字段名和类型自行定义,但需合理。

12.2.1.1 创建数据库student

DROP DATABASE IF EXISTS student;
CREATE DATABASE student;

12.2.1.2 创建score表

USE student;
CREATE TABLE score(
   stu_id INT PRIMARY KEY NOT NULL COMMENT '学号',
  `name` VARCHAR(16) NOT NULL COMMENT '姓名',
   major VARCHAR(16) NOT NULL COMMENT '专业',
   class_num TINYINT NOT NULL COMMENT '班级',
   avg_score DECIMAL(5,2) COMMENT '平均成绩'
)COMMENT = '成绩表';

12.2.1.3 增加avg_score索引

-- 默认升序索引,但对单列降序同样生效
ALTER TABLE score
ADD INDEX idx_score(avg_score);

12.2.1.4 增加记录数据

INSERT INTO score(stu_id,`name`,major,class_num,avg_score) VALUES
(20217880,'小草','金融理财类',1,94),
(20217865,'夜莺','播音主持类',3,93),
(20217881,'雨浪','新闻传媒类',2,95),
(20217883,'谢添','计算机类',6,96),
(20217853,'狐狸半面添','计算机科学类',2,94),
(20217864,'忧愁剑客','剑术刀影类',1,95),
(20217882,'小思树','医药科学类',3,95.5),
(20217888,'小宋','生命科学类',7,94.2),
(20217889,'思熠','材料化学类',5,93.5),
(20217893,'浪语','哲学与马克思类',2,94.6),
(20217892,'艾浪','法学教育类',8,96.5),
(20217884,'浪音','科学生命类',4,97),
(20217886,'思浪','思想道德类',5,96.6),
(20217854,'逐浪者','海洋生命类',1,96.4);
-- 查看增加情况
SELECT * FROM score;

12.2.2 设计一个学生成绩管理界面

12.2.2.0 说明

1.实验要求
  • 利用Jtable组件和其对应的Model,将数据库Student中的数据读出并按照平均成绩降序排序。最终效果图:

  • 执行相应操作前应进行有效性检查,即数据库中是否有与学号相一致的主键,如果有则不能添加,并提示系统中已有该生数据,删除时则提示是否删除,点击确定删除。修改也做类似操作,在添加时必须保证所有选项不为空,删除的判断是仅需判断学号是否为空即可。

2.从0到1搭建学生成绩管理系统java整体结构

3.最终实现功能

  1. 本项目需要进行数据库连接,下载,安装与使用MySQL并下载图形化界面软件查看文章:MySQL下载与安装、mysql服务启动与停止、mysql使用cmd命令行登录、SQLyog下载与安装,sqlyog登录与操作mysql_是谢添啊的博客-CSDN博客

网址:https://blog.csdn.net/qq_62982856/article/details/127768220?spm=1001.2014.3001.5501

12.2.2.1 创建一个新项目student_manage

12.2.2.2 下载jar包

这里我们需要下载三个 jar 包,由于我在这里是直接访问外网,因此如果你的网速不行请切换为流量。

12.2.2.2.1 commons-dbutils-1.7.jar

🏠 下载地址:https://repo1.maven.org/maven2/commons-dbutils/commons-dbutils/1.7/

12.2.2.2.2 druid-1.1.10.jar

🏠 下载地址:https://repo1.maven.org/maven2/com/alibaba/druid/1.1.10/

12.2.2.2.3 mysql-connector-java-xxx.jar

这里需要特别注意,需要下载的数据库驱动jar包根据你的mysql版本会有所不同。

查看自己的mysql版本:mysqld --version

1️⃣ 如果你是mysql5.7的版本

🏠 下载地址:https://repo1.maven.org/maven2/mysql/mysql-connector-java/5.1.37/

2️⃣ 如果你是mysql8.0的版本

🏠 下载地址:https://repo1.maven.org/maven2/mysql/mysql-connector-java/8.0.16/

12.2.2.3 创建管理jar包的文件夹library

1️⃣ 在student_manage文件夹下创建一个library文件夹,将commons-dbutils、druid、mysql-connector-java拷贝到library文件夹下

由于我装的是mysql8.0的版本,因此我使用的jar包时mysql-connector-java-8.0.16.jar

2️⃣ 将jar包添加至项目

12.2.2.4 添加druid.properties文件至src目录下

druid.properties文件内容:(password的值你需要依照自己的实际设置情况来定)

  • 如果你是mysql5.7的版本
driverClassName=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/student?rewriteBatchedStatements=true&serverTimezone=GMT&useSSL=false
#数据库用户名
username=root
#数据库密码,这里需要依照自己的实际情况
password=123456
initialSize=10
#min idle connecton size
minIdle=5
#max active connection size
maxActive=20
#max wait time (5000 mil seconds)
maxWait=5000
  • 如果你是mysql8.0的版本
driverClassName=com.mysql.cj.jdbc.Driver
url=jdbc:mysql://localhost:3306/student?rewriteBatchedStatements=true&serverTimezone=GMT&useSSL=false
#数据库用户名
username=root
#数据库密码,这里需要依照自己的实际情况
password=123456
initialSize=10
#min idle connecton size
minIdle=5
#max active connection size
maxActive=20
#max wait time (5000 mil seconds)
maxWait=5000

12.2.2.5 src下创建utils文件夹并创建类

12.2.2.5.1 JDBCUtilsByDruid类
package utils;
import com.alibaba.druid.pool.DruidDataSourceFactory;
import javax.sql.DataSource;
import java.io.FileInputStream;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Properties;
public class JDBCUtilsByDruid {
    private static DataSource dataSource;
    static{
        try {
            Properties properties = new Properties();
            properties.load(new FileInputStream("src//druid.properties"));
            dataSource = DruidDataSourceFactory.createDataSource(properties);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
    //获取连接
    public static Connection getConnection(){
        try {
            return dataSource.getConnection();
        } catch (SQLException e) {
            throw new RuntimeException(e);
        }
    }
    //关闭连接
    public static void close(ResultSet resultSet, PreparedStatement preparedStatement, Connection connection){
        try {
            if(resultSet!=null){
                resultSet.close();
            }
            if(preparedStatement!=null){
                preparedStatement.close();
            }
            if(connection!=null){
                connection.close();
            }
        } catch (SQLException e) {
            throw new RuntimeException(e);
        }
    }
}
12.2.2.5.2 ScreenUtils类
package utils;
import java.awt.*;
public class ScreenUtils {
    /*
        获取当前电脑屏幕的宽度
     */
    public static int getScreenWidth(){
        return Toolkit.getDefaultToolkit().getScreenSize().width;
    }
    /*
        获取当前电脑屏幕的高度
     */
    public static int getScreenHeight(){
        return Toolkit.getDefaultToolkit().getScreenSize().height;
    }
}
12.2.2.5.3 StringUtils类
package utils;
/**
 * 字符串工具类
 */
public class StringUtils {
    /**
     * 判断是否 str 是否为合法文本内容
     */
    public static boolean hasText(String str) {
        return str != null && !str.isEmpty() && containsText(str);
    }
    private static boolean containsText(CharSequence str) {
        int strLen = str.length();
        for(int i = 0; i < strLen; ++i) {
            if (!Character.isWhitespace(str.charAt(i))) {
                return true;
            }
        }
        return false;
    }
}


相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。 &nbsp; 相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情:&nbsp;https://www.aliyun.com/product/rds/mysql&nbsp;
相关文章
|
7月前
|
Cloud Native 关系型数据库 分布式数据库
阿里云PolarDB与沃趣科技携手打造一体化数据库解决方案,助推国产数据库生态发展
阿里云瑶池数据库与沃趣科技将继续深化合作,共同推动国产数据库技术的持续创新与广泛应用,为行业生态的繁荣注入更强劲的技术动力。
阿里云PolarDB与沃趣科技携手打造一体化数据库解决方案,助推国产数据库生态发展
|
Cloud Native 关系型数据库 分布式数据库
阿里云牵手海亮科技,共建“教育科技数据库创新应用中心”
海亮科技选择引入阿里云PolarDB开源分布式版(PolarDB for Xscale)数据库,不仅能解决海亮科技数据库业务中面临的可靠性、稳定性问题,也为海亮科技业务的高速发展提供了更好的灵活性和可扩展性。
|
8月前
|
Cloud Native 关系型数据库 MySQL
华鼎冷链科技 × 阿里云瑶池数据库,打造全链路协同的智慧冷链新标杆
从 PolarDB 的高性能数据库服务到 AnalyticDB 的强大数据分析,阿里云提供的丰富产品矩阵为华鼎冷链科技构建了全面的解决方案,推动华鼎冷链科技从成本中心向效率中心转型。
|
8月前
|
存储 SQL 运维
当「内容科技企业」遇上多模数据库:新榜采用Lindorm打造全域数据“超级底盘”
新榜业务以数据服务提升内容产业信息流通效率,其数据处理需求聚焦于跨平台实时数据融合处理、实时分析检索、批量更新效率三大维度。Lindorm通过多模超融合架构,提供检索分析一体化、多引擎数据共享,分布式弹性扩展等能力,成为支撑新榜内容服务的核心引擎,助力客户在内容生态竞争中持续领跑。
|
11月前
|
JavaScript NoSQL Java
基于SpringBoot+Vue的班级综合测评管理系统设计与实现(系统源码+文档+数据库+部署等)
✌免费选题、功能需求设计、任务书、开题报告、中期检查、程序功能实现、论文辅导、论文降重、答辩PPT辅导、会议视频一对一讲解代码等✌
|
11月前
|
JavaScript NoSQL Java
基于SpringBoot+Vue实现的大学生体质测试管理系统设计与实现(系统源码+文档+数据库+部署)
面向大学生毕业选题、开题、任务书、程序设计开发、论文辅导提供一站式服务。主要服务:程序设计开发、代码修改、成品部署、支持定制、论文辅导,助力毕设!
|
12月前
|
存储 NoSQL 关系型数据库
阿里云数据库MongoDB版助力信也科技 打造互联网金融企业样板
我们的风控系统引入阿里云数据库MongoDB版后,解决了特征类字段灵活加减的问题,大大提高了开发效率,极大的提升了业务用户体验,获得了非常好的效果
阿里云数据库MongoDB版助力信也科技 打造互联网金融企业样板
|
关系型数据库 MySQL Java
Django学习二:配置mysql,创建model实例,自动创建数据库表,对mysql数据库表已经创建好的进行直接操作和实验。
这篇文章是关于如何使用Django框架配置MySQL数据库,创建模型实例,并自动或手动创建数据库表,以及对这些表进行操作的详细教程。
513 0
Django学习二:配置mysql,创建model实例,自动创建数据库表,对mysql数据库表已经创建好的进行直接操作和实验。
|
Cloud Native 关系型数据库 Serverless
阿里云数据库获中国计算机学会“科技进步一等奖”!
阿里云数据库获中国计算机学会“科技进步一等奖”!
236 0
|
Cloud Native 关系型数据库 分布式数据库
阿里云牵手海亮科技,共建“教育科技数据库创新应用中心”
近日,阿里云与世界500强旗下、国内领先的教育服务提供商海亮科技集团(以下简称“海亮科技”)达成合作,联合成立“教育科技数据库创新应用中心”。双方将充分整合优势资源,共同推进教育科技领域的数据库技术研究和国产数据库的应用与发展。
294 8

热门文章

最新文章