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日

相关文章

  • 将原生JDBC封装实现CRUD的案例

    针对“将原生JDBC封装实现CRUD的案例”的完整攻略,我来为您进行详细讲解。 什么是JDBC? Java 数据库连接(Java Database Connectivity,简称JDBC),是Java语言中用来规范客户端程序如何访问数据库的应用程序接口,提供了一系列的类和接口,使得Java程序可以方便地对各种关系型数据库进行操作。 为什么需要封装JDBC? …

    Java 2023年5月20日
    00
  • Java ArrayList 数组之间相互转换

    下面是Java ArrayList数组之间相互转换的完整攻略。 ArrayList 和数组之间的区别 在Java中,ArrayList和数组都可以用来存储多个相同类型的元素。但是,它们有以下的区别: 数组是静态数据类型,需要预先指定长度,而且只能存储同一种类型的元素; ArrayList则是动态数据类型,可以在不确定元素个数的情况下存储多个不同类型的元素,并…

    Java 2023年5月26日
    00
  • jsp只在首次加载时调用action实现代码

    当我们在一个JSP页面中使用了JSP动作标签(JSP Action Tag),比如<jsp:include>或者<jsp:forward>,其实际上就是调用了指定页面中对应的Servlet进行处理。在这种情况下,Servlet只会在JSP页面首次被加载时被调用执行,后续如果没有被重新加载,就不会再次被调用了。 下面通过两个示例来详细讲…

    Java 2023年6月15日
    00
  • Spring中事务管理的四种方法(银行转账为例)

    请看我以下的详细讲解。 Spring中事务管理的四种方法 Spring中提供了四种常用的方式来管理事务,分别是: 通过AOP实现声明式事务管理 通过编程式事务管理 通过注解实现声明式事务管理 通过TransactionTemplate实现编程式事务管理 对于每种事务管理方式,我们将通过银行转账的例子进行说明。 1. 通过AOP实现声明式事务管理 在这种方式中…

    Java 2023年5月20日
    00
  • jsp实现cookie的使用

    下面我来详细讲解如何使用JSP实现Cookie的使用攻略: 一、什么是Cookie Cookie是存放在客户端的一组键值对数据,它是由服务器发给客户端的一小段信息,通常存储在客户端的浏览器上,用于维护会话状态、跟踪用户行为等。通过Cookie技术,我们可以把用户的个性化设置、购物车中的商品信息等存储在客户端,从而达到精准的个性化服务。 二、实现Cookie的…

    Java 2023年6月15日
    00
  • java算法Leecode刷题统计有序矩阵中的负数

    Java算法Leetcode刷题是大多数Java程序员在提高自己的算法能力时所选择的途径之一。其中,《有序矩阵中的负数》是一道常见的算法题目。下面我将给出一份完整攻略,以便Java程序员能够更好地掌握这道题目。 题目描述 给定一个m*n的矩阵grid,其中每行和每列均已按非递增顺序排好序,请你统计并返回grid中 负数 的个数。 解题思路 因为矩阵已按照非递…

    Java 2023年5月19日
    00
  • Java实现byte[]转List的示例代码

    实现byte[]转List可以使用Java内置的List和Arrays两个类来实现,以下是示例代码和详细攻略: 示例代码: import java.util.ArrayList; import java.util.Arrays; import java.util.List; public class ByteToListExample { public st…

    Java 2023年5月26日
    00
  • Java+Springboot搭建一个在线网盘文件分享系统

    Java+Springboot搭建一个在线网盘文件分享系统攻略 1.准备工作 1.1 Java环境配置 首先需要安装Java运行环境,下载地址为:https://www.java.com/en/download/ 1.2 Springboot环境配置 Springboot是一个基于Spring框架的轻量级web应用开发框架,可以方便地快速搭建web应用。使用…

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