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

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群版 2核4GB 100GB
推荐场景:
搭建个人博客
云数据库 RDS MySQL,高可用版 2核4GB 50GB
简介: 中南林业科技大学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;
    }
}


相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
1天前
|
前端开发 Java 开发工具
Java医院绩效考核系统源码:关于医院绩效考核系统的技术架构、系统功能、如何选择医院绩效考核管理系统
系统开发环境 开发语言:java 技术架构:B/S架构 开发工具:maven、Visual Studio Code 前端框架:avue 后端框架:springboot、mybaits 数 据 库:MySQL
16 4
Java医院绩效考核系统源码:关于医院绩效考核系统的技术架构、系统功能、如何选择医院绩效考核管理系统
|
1天前
|
SQL Java 关系型数据库
Java中的JDBC编程:从数据库连接到高级查询
Java中的JDBC编程:从数据库连接到高级查询
|
1天前
|
存储 安全 Java
如何在Java中实现数据库连接池?
如何在Java中实现数据库连接池?
|
1天前
|
SQL Java 数据库连接
Java中如何优化数据库查询性能?
Java中如何优化数据库查询性能?
|
1天前
|
SQL Java 数据库连接
如何在Java中实现数据库事务?
如何在Java中实现数据库事务?
|
1天前
|
监控 Java 数据库连接
Java中如何实现数据库连接池优化?
Java中如何实现数据库连接池优化?
|
1天前
|
缓存 Java 数据库连接
解析Hibernate与JPA:Java对象的数据库化之旅
【6月更文挑战第25天】在Java企业开发中,Hibernate和JPA提供优雅的数据持久化方案。Hibernate是JPA规范的强大ORM实现,简化对象与数据库映射。配置环境后,通过@Entity注解定义实体类映射表,如`User`类映射&quot;users&quot;表。利用JPA的EntityManager执行查询和更新,如JPQL查询及对象更新。事务管理和性能优化是关键,确保数据完整性和应用性能。本文揭示了Hibernate与JPA的最佳实践,助开发者从容应对数据持久化。
|
1天前
|
Java 数据库连接 API
数据库与Java的无缝对接:Hibernate与JPA的集成与应用
【6月更文挑战第25天】Java企业级应用中,Hibernate和JPA是ORM主流框架。JPA是标准API,定义对象-关系映射规范,强调标准化和可移植性。Hibernate是JPA的具体实现,扩展了更多功能,如强大的查询语言和缓存机制。两者集成允许开发者利用Hibernate性能,通过JPA注解保持代码规范。示例展示了如何使用JPA注解定义实体和Hibernate执行查询,实现数据库操作。这种方式提升了开发效率和应用质量。
|
1天前
|
存储 Java 数据库连接
深入探索Hibernate与JPA:Java对象与数据库表的桥梁
【6月更文挑战第25天】Java ORM如Hibernate和JPA简化了数据库交互。在电商系统案例中,JPA注解如`@Entity`、`@Table`、`@Id`定义了对象-表映射。Hibernate利用这些定义实现持久化,如`Session.save()`保存用户对象至数据库,降低了复杂性并提升了开发效率。
|
1天前
|
关系型数据库 Java MySQL
Java关于Mysql数据库的事物处理类
Java关于Mysql数据库的事物处理类

热门文章

最新文章