Java+mysql实现学籍管理系统

Java+MySQL实现学籍管理系统攻略

1. 系统功能说明

本学籍管理系统主要实现以下功能:

  • 新增学生信息:添加学生姓名、性别、出生日期、身份证号、联系方式等信息;
  • 修改学生信息:修改已有学生信息;
  • 删除学生信息:删除已有学生信息;
  • 查询学生信息:通过学生姓名或者身份证号来查询学生信息;
  • 统计学生数量:统计已有学生的数量。

2. 开发环境和工具

  • 开发平台:Windows 10;
  • Java版本:JDK 1.8或以上;
  • 开发工具:IntelliJ IDEA;
  • 数据库:MySQL

3. 实现步骤

3.1 创建数据库和表格

首先,需要创建一个MySQL数据库来存储学生信息。可以使用MySQL Workbench或者其他MySQL客户端软件来操作,包括创建数据库、创建表格和添加数据等。创建的表格必须包含以下内容:

  • id:学生编号,自增长;
  • name:学生姓名;
  • gender:学生性别;
  • birth:学生生日;
  • idCard:学生身份证号码;
  • phone:学生联系方式。

以下是一个示例的SQL代码,可以在MySQL客户端中执行:

CREATE DATABASE student_system;

USE student_system;

CREATE TABLE student (
  `id` INT(11) NOT NULL AUTO_INCREMENT,
  `name` VARCHAR(64) NOT NULL DEFAULT '',
  `gender` VARCHAR(10) NOT NULL DEFAULT '',
  `birth` DATE NOT NULL,
  `idCard` VARCHAR(18) NOT NULL DEFAULT '',
  `phone` VARCHAR(16) NOT NULL DEFAULT '',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

3.2 编写Java程序

接下来,需要编写Java程序来实现学籍管理系统的功能。首先,需要创建一个Java项目和相关的包和类,然后将MySQL的JDBC驱动程序添加到项目中。可以在官网(https://dev.mysql.com/downloads/connector/j/)上下载最新版本的MySQL JDBC驱动程序。

代码实现中主要包括以下内容:

3.2.1 连接数据库

使用JDBC连接MySQL数据库,需要在Java代码中先加载MySQL JDBC驱动程序,然后通过DriverManager来获取数据库连接。以下是一个示例代码:

// 加载MySQL JDBC驱动程序
Class.forName("com.mysql.jdbc.Driver");

// 建立数据库连接
Connection conn = DriverManager.getConnection(
    "jdbc:mysql://localhost:3306/student_system?useSSL=false",
    "root",
    "123456"
);

其中,"jdbc:mysql://localhost:3306/student_system?useSSL=false"表示数据库连接地址,"root"和"123456"分别是MySQL数据库的用户名和密码。

3.2.2 新增学生信息

使用Java程序向MySQL数据库中新增学生信息,首先需要创建一个PreparedStatement对象,然后使用setXXX方法设置SQL语句中的参数值,最后使用executeUpdate方法执行SQL语句。以下是一个示例代码:

// 创建SQL语句
String sql = "INSERT INTO student (name, gender, birth, idCard, phone) " +
             "VALUES (?, ?, ?, ?, ?)";

// 创建PreparedStatement对象
PreparedStatement pstmt = conn.prepareStatement(sql);

// 设置参数值
pstmt.setString(1, "张三");
pstmt.setString(2, "男");
pstmt.setDate(3, new Date(new java.util.Date().getTime()));
pstmt.setString(4, "320xxxxx");
pstmt.setString(5, "138xxxx");

// 执行SQL语句
int result = pstmt.executeUpdate();

if (result > 0) {
    System.out.println("新增学生信息成功!");
} else {
    System.out.println("新增学生信息失败!");
}

3.2.3 修改学生信息

使用Java程序修改MySQL数据库中已有学生信息,首先需要创建一个PreparedStatement对象,然后使用setXXX方法设置SQL语句中的参数值,最后使用executeUpdate方法执行SQL语句。以下是一个示例代码:

// 创建SQL语句
String sql = "UPDATE student " +
             "SET name = ?, gender = ?, birth = ?, phone = ? " +
             "WHERE id = ?";

// 创建PreparedStatement对象
PreparedStatement pstmt = conn.prepareStatement(sql);

// 设置参数值
pstmt.setString(1, "李四");
pstmt.setString(2, "女");
pstmt.setDate(3, new Date(new java.util.Date().getTime()));
pstmt.setString(4, "139xxxx");
pstmt.setInt(5, 1);

// 执行SQL语句
int result = pstmt.executeUpdate();

if (result > 0) {
    System.out.println("修改学生信息成功!");
} else {
    System.out.println("修改学生信息失败!");
}

3.2.4 删除学生信息

使用Java程序从MySQL数据库中删除已有学生信息,首先需要创建一个PreparedStatement对象,然后使用setXXX方法设置SQL语句中的参数值,最后使用executeUpdate方法执行SQL语句。以下是一个示例代码:

// 创建SQL语句
String sql = "DELETE FROM student WHERE id = ?";

// 创建PreparedStatement对象
PreparedStatement pstmt = conn.prepareStatement(sql);

// 设置参数值
pstmt.setInt(1, 1);

// 执行SQL语句
int result = pstmt.executeUpdate();

if (result > 0) {
    System.out.println("删除学生信息成功!");
} else {
    System.out.println("删除学生信息失败!");
}

3.2.5 查询学生信息

使用Java程序从MySQL数据库中查询学生信息,需要创建一个PreparedStatement对象,然后使用setXXX方法设置SQL语句中的参数值,最后使用executeQuery方法获取查询结果集。以下是一个示例代码:

// 创建SQL语句
String sql = "SELECT id, name, gender, birth, idCard, phone " +
             "FROM student " +
             "WHERE name = ? OR idCard = ?";

// 创建PreparedStatement对象
PreparedStatement pstmt = conn.prepareStatement(sql);

// 设置参数值
pstmt.setString(1, "张三");
pstmt.setString(2, "320xxxxx");

// 执行SQL语句
ResultSet rs = pstmt.executeQuery();

// 处理查询结果集
while (rs.next()) {
    int id = rs.getInt("id");
    String name = rs.getString("name");
    String gender = rs.getString("gender");
    Date birth = rs.getDate("birth");
    String idCard = rs.getString("idCard");
    String phone = rs.getString("phone");

    System.out.println("id: " + id + ", name: " + name +
                       ", gender: " + gender + ", birth: " +
                       birth + ", idCard: " + idCard +
                       ", phone: " + phone);
}

3.2.6 统计学生数量

使用Java程序统计MySQL数据库中已有学生的数量,需要创建一个PreparedStatement对象,然后使用executeQuery方法获取查询结果集,最后通过ResultSet的getXXX方法获取查询结果。以下是一个示例代码:

// 创建SQL语句
String sql = "SELECT COUNT(id) AS total FROM student";

// 创建PreparedStatement对象
PreparedStatement pstmt = conn.prepareStatement(sql);

// 执行SQL语句
ResultSet rs = pstmt.executeQuery();

// 获取查询结果
if (rs.next()) {
    int total = rs.getInt("total");
    System.out.println("学生总人数:" + total);
}

3.3 运行程序

将Java程序编译成.class文件,并将相关的.class文件、MySQL JDBC驱动程序和配置文件等打包成一个jar文件。然后在命令行中运行该jar文件即可实现学籍管理系统的功能。以下是一个示例命令:

java -jar student_system.jar

4. 示例应用

以下是两个示例应用,使用Java+MySQL实现学籍管理系统的相关功能。

4.1 示例1:新增学生信息

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.sql.Date;

public class AddStudent {

    public static void main(String[] args) {
        try {
            // 加载MySQL JDBC驱动程序
            Class.forName("com.mysql.jdbc.Driver");

            // 建立数据库连接
            Connection conn = DriverManager.getConnection(
                "jdbc:mysql://localhost:3306/student_system?useSSL=false",
                "root",
                "123456"
            );

            // 创建SQL语句
            String sql = "INSERT INTO student (name, gender, birth, idCard, phone) " +
                         "VALUES (?, ?, ?, ?, ?)";

            // 创建PreparedStatement对象
            PreparedStatement pstmt = conn.prepareStatement(sql);

            // 设置参数值
            pstmt.setString(1, "张三");
            pstmt.setString(2, "男");
            pstmt.setDate(3, new Date(new java.util.Date().getTime()));
            pstmt.setString(4, "320xxxxx");
            pstmt.setString(5, "138xxxx");

            // 执行SQL语句
            int result = pstmt.executeUpdate();

            if (result > 0) {
                System.out.println("新增学生信息成功!");
            } else {
                System.out.println("新增学生信息失败!");
            }

            // 关闭数据库连接
            pstmt.close();
            conn.close();
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }

}

4.2 示例2:查询学生信息

import java.sql.*;

public class QueryStudent {

    public static void main(String[] args) {
        try {
            // 加载MySQL JDBC驱动程序
            Class.forName("com.mysql.jdbc.Driver");

            // 建立数据库连接
            Connection conn = DriverManager.getConnection(
                "jdbc:mysql://localhost:3306/student_system?useSSL=false",
                "root",
                "123456"
            );

            // 创建SQL语句
            String sql = "SELECT id, name, gender, birth, idCard, phone " +
                         "FROM student " +
                         "WHERE name = ? OR idCard = ?";

            // 创建PreparedStatement对象
            PreparedStatement pstmt = conn.prepareStatement(sql);

            // 设置参数值
            pstmt.setString(1, "张三");
            pstmt.setString(2, "320xxxxx");

            // 执行SQL语句
            ResultSet rs = pstmt.executeQuery();

            // 处理查询结果集
            while (rs.next()) {
                int id = rs.getInt("id");
                String name = rs.getString("name");
                String gender = rs.getString("gender");
                Date birth = rs.getDate("birth");
                String idCard = rs.getString("idCard");
                String phone = rs.getString("phone");

                System.out.println("id: " + id + ", name: " + name +
                                   ", gender: " + gender + ", birth: " +
                                   birth + ", idCard: " + idCard +
                                   ", phone: " + phone);
            }

            // 关闭数据库连接
            rs.close();
            pstmt.close();
            conn.close();
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }

}

5. 总结

Java+MySQL实现学籍管理系统是常见的应用程序之一,使用JDBC连接MySQL数据库来操作学生信息。本文主要讲解了Java+MySQL实现学籍管理系统的完整攻略,包括创建数据库和表格、编写Java程序和运行程序等内容,提供了两个示例应用来说明如何实现学籍管理系统的相关功能。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Java+mysql实现学籍管理系统 - Python技术站

(0)
上一篇 2023年5月19日
下一篇 2023年5月19日

相关文章

  • 使用jQuery.form.js/springmvc框架实现文件上传功能

    下面是关于“使用jQuery.form.js/SpringMVC框架实现文件上传功能”的完整攻略,包含两个示例说明。 使用jQuery.form.js/SpringMVC框架实现文件上传功能 在本文中,我们将介绍如何使用jQuery.form.js和SpringMVC框架实现文件上传功能。 步骤1:添加依赖 首先,我们需要在pom.xml中添加SpringM…

    Java 2023年5月17日
    00
  • Java finally语句块的作用是什么?

    Java中的finally语句块是一个可选的语句,可以和try和catch块联合使用。这个语句块中的代码无论在异常有无被抛出,都会在程序执行完try和catch块后被执行。通常情况下,finally块用来执行一些清理性的代码,例如关闭数据库连接、输入输出流等;同时finally块也可以用来确保某些代码块必须被执行,即使有异常发生。 下面是一些finally语…

    Java 2023年4月27日
    00
  • java通过JFrame做一个登录系统的界面完整代码示例

    下面我将为你详细讲解如何使用Java通过JFrame做一个登录系统的界面。 前提准备 在开始编写代码之前,我们需要先确保已经安装好了Java开发环境,推荐使用Eclipse开发工具。 第一步:搭建界面 在Java中,JFrame是我们常用的界面设计类。我们首先需要实例化一个JFrame类,并为其设置一些基本的属性,比如窗口大小、标题等。示例如下: impor…

    Java 2023年5月24日
    00
  • Java switch关键字原理及用法详解

    Java switch关键字原理及用法详解 1. 概述 switch 是 Java 中的一个关键字,用于基于不同的条件执行不同的操作。它是一种比较简单却又很实用的控制语句,它包含一个或多个 case 模块,每个模块代表一个条件,当条件满足时执行相应的代码。 2. 语法结构 switch 控制语句的语法结构如下: switch (expression) { c…

    Java 2023年5月27日
    00
  • Java比较问题详细分析

    接下来我会为大家详细讲解“Java比较问题详细分析”的完整攻略。 Java比较问题详细分析 在Java开发中,我们经常需要进行比较操作,比如比较两个字符串是否相等,比较两个数字大小等等。但是在比较的过程中,我们可能会遇到一些问题,比如相等的两个字符串比较结果为false,或者比较两个浮点数结果不准确等等。下面我们就针对这些问题,来逐一进行详细分析。 问题1:…

    Java 2023年5月26日
    00
  • 浅谈.html,.htm,.shtml,.shtm的区别与联系

    下面是详细讲解“浅谈.html,.htm,.shtml,.shtm的区别与联系”的攻略: 标准的HTML文件格式 HTML(Hypertext Markup Language)是用来编写网页的标准语言,而 “.html” 或 “.htm” 文件就是标准的 HTML 文件格式。这两种格式本质上是没有区别的,只不过后缀名的不同。一些 Web 服务器或操作系统在默…

    Java 2023年6月15日
    00
  • Java中的异常处理如何提高程序健壮性?

    Java中异常处理是一种防御性编程的技术手段,可以应对程序中出现的不可预知的异常情况,提高程序的健壮性。 在Java中,异常是由Java虚拟机(JVM)或程序员代码抛出的对象。当程序中出现异常情况,会有一个异常对象被抛出,这个异常对象会包含一些关于异常情况的信息。程序员可以通过编写异常处理代码,捕获并处理这些异常对象。 以下是使用Java异常处理提高程序健壮…

    Java 2023年4月27日
    00
  • SpringBoot整合SpringCloud的过程详解

    下面我将详细讲解“SpringBoot整合SpringCloud的过程详解”的完整攻略。 1. 前置知识 在开始整合 SpringBoot 和 SpringCloud 前,需要先掌握以下技术: 熟悉 SpringBoot 和 SpringCloud 的基础知识和机制; 熟练掌握分布式系统的编程思想和设计模式; 对于分布式系统的弹性设计、服务注册与发现、负载均…

    Java 2023年5月15日
    00
合作推广
合作推广
分享本页
返回顶部