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日

相关文章

  • Java 按行读取文件按行写入文件并以空格分割字符串的方法

    要实现Java按行读取文件并以空格分割字符串的方法,可以使用以下步骤: 使用Java中的BufferedReader类读取文件中的每一行数据。 将每一行数据使用Java中的String类的split方法按照空格分割成字符串数组。 将分割后的字符串数组转换为每个元素带空格的字符串,并写入到输出文件中。 以下是两个示例: 示例一: 假设有input.txt文件内…

    Java 2023年5月27日
    00
  • Java中过滤器 (Filter) 和 拦截器 (Interceptor)的使用

    Java中的过滤器(Filter)和拦截器(Interceptor)是Web开发中常用的两个概念,它们能够有效地对请求进行处理和控制。在本文中,我们将针对Java中过滤器和拦截器的使用进行详细讲解,包括二者的区别、使用方法、作用范围等内容,并举例说明。 一、过滤器(Filter)和拦截器(Interceptor)的区别 过滤器(Filter)和拦截器(Int…

    Java 2023年5月26日
    00
  • 详解Java实现负载均衡的几种算法代码

    当我们的应用程序规模开始不断增长时,单个服务器的负载可能会超过其处理能力的极限,导致我们的应用程序的性能下降甚至崩溃。这时就需要使用负载均衡来解决这个问题。本文主要讲解Java实现负载均衡的几种算法代码。 什么是负载均衡 负载均衡是指将请求分发到多个服务器上,以平衡每个服务器上的负载,避免单个服务器过载而导致应用程序的性能下降甚至崩溃。 负载均衡算法 负载均…

    Java 2023年5月19日
    00
  • JavaScript实现图片倒影效果 – reflex.js

    下面我将详细讲解“JavaScript实现图片倒影效果 – reflex.js”的完整攻略。 介绍 reflex.js是一个用于实现图片倒影效果的JavaScript插件。使用reflex.js,您可以很容易地在网页中添加图片倒影效果。 步骤 步骤一:加入源代码 要使用reflex.js,您需要将它的源代码(可以在GitHub上下载)加入到您的网页中。您可以…

    Java 2023年6月15日
    00
  • 理解Java程序的执行

    main 方法 public class Solution { public static void main(String[] args) { Person person = new Person(); person.hello(); } } class Person { public void hello() { System.out.println(“…

    Java 2023年4月22日
    00
  • 使用IDEA配置Maven搭建开发框架ssm教程

    Sure, 我会提供一份详细的使用IDEA配置Maven搭建开发框架SSM的教程攻略。这个过程分为以下几个步骤: 1. 安装并配置Maven和MySql 首先,你需要在你的计算机上安装和配置Maven和MySql,可以参考官方文档或者在线教程。 2. 使用IDEA创建一个Maven项目 打开IDEA,点击“File” -> “New” -> “P…

    Java 2023年5月20日
    00
  • java中的4种循环方法示例详情

    Java 中的 4 种循环方法 在 Java 中,我们可以使用 4 种不同的循环方法来循环遍历数据或执行某些操作,分别是:for 循环、while 循环、do…while 循环和增强型 for 循环,下面我们看一下每个循环的用法及示例。 for 循环 for 循环是一种指定循环次数的循环结构,其语法为: for (initialization; termin…

    Java 2023年5月26日
    00
  • IDEA不编译除了.java之外的文件的解决办法(推荐)

    IDEA不编译除了.java之外的文件的解决办法(推荐) 在使用IntelliJ IDEA 进行项目开发时,我们可能会遇到只编译 Java 文件,而不编译其他文件的问题,这可能会导致一些问题出现。此时,我们需要采取一些措施来解决这个问题。 解决方案 解决方案有很多种,主要有三种: 方案一 打开IntelliJ IDEA设置,找到Compiler,在其中找到C…

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