Java+MySQL实现学生信息管理系统源码

Java+MySQL实现学生信息管理系统

本文将介绍如何使用Java和MySQL数据库实现一个简单的学生信息管理系统,并提供完整的源码和演示。

准备工作

为了使用Java和MySQL实现学生信息管理系统,需要先进行以下准备工作:

  1. 安装Java开发环境(JDK)
  2. 安装MySQL数据库
  3. 安装Java连接MySQL的驱动程序(JDBC驱动)

在这里以Windows系统为例,介绍如何安装和配置Java和MySQL开发环境。

安装Java开发环境(JDK)

可以从Oracle官网下载JDK安装程序,按照提示安装即可。

安装MySQL数据库

可以从MySQL官网下载MySQL Community Server安装程序,按照提示安装即可。

安装Java连接MySQL的驱动程序(JDBC驱动)

可以从MySQL官网下载JDBC驱动程序,下载后将其添加到Java的classpath中即可。

设计数据库

学生信息管理系统需要保存学生的基本信息,比如姓名、学号、性别、班级、成绩等。为了方便管理,我们可以设计一个Students表,如下所示:

CREATE TABLE Students (
   id INT NOT NULL AUTO_INCREMENT,
   name VARCHAR(50) NOT NULL,
   id_number VARCHAR(50) NOT NULL,
   gender VARCHAR(50) NOT NULL,
   class VARCHAR(50) NOT NULL,
   score INT NOT NULL,
   PRIMARY KEY (id)
);

编写Java代码

连接数据库

首先需要创建一个连接数据库的工具类,代码如下:

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

public class DatabaseConnection {

    public static final String url = "jdbc:mysql://localhost:3306/students";
    public static final String user = "root";
    public static final String password = "123456";

    public static Connection getConnection() {
        Connection conn = null;
        try {
            Class.forName("com.mysql.jdbc.Driver");
            conn = DriverManager.getConnection(url, user, password);
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return conn;
    }
}

连接数据库时需要提供数据库的URL、用户名和密码,这些信息可以在上一步中完成MySQL的安装后得到。

插入学生信息

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

public class InsertStudent {

    public void insertStudent(String name, String id_number, String gender, String className, int score) {
        Connection conn = DatabaseConnection.getConnection();
        PreparedStatement pstmt = null;

        if (conn == null) {
            return;
        }

        String sql = "INSERT INTO `students` (`name`, `id_number`, `gender`, `class`, `score`) VALUES (?, ?, ?, ?, ?)";

        try {
            pstmt = conn.prepareStatement(sql);
            pstmt.setString(1, name);
            pstmt.setString(2, id_number);
            pstmt.setString(3, gender);
            pstmt.setString(4, className);
            pstmt.setInt(5, score);
            pstmt.executeUpdate();
        } catch (SQLException e) {
            e.printStackTrace();
        } finally {
            try {
                if (pstmt != null) {
                    pstmt.close();
                }
                conn.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
    }
}

以上代码演示了如何向数据库中插入学生信息,需要提供学生的姓名、学号、性别、班级和成绩等信息。

查询学生信息

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

public class QueryStudent {

    public void queryAllStudent() {
        Connection conn = DatabaseConnection.getConnection();
        PreparedStatement pstmt = null;
        ResultSet rs = null;

        if (conn == null) {
            return;
        }

        String sql = "SELECT `name`, `id_number`, `gender`, `class`, `score` FROM `students`";

        try {
            pstmt = conn.prepareStatement(sql);
            rs = pstmt.executeQuery();

            System.out.printf("%-15s %-20s %-10s %-20s %-10s\n", "Name", "ID Number", "Gender", "Class", "Score");
            System.out.println("-------------------------------------------------------");

            while (rs.next()) {
                String name = rs.getString("name");
                String id_number = rs.getString("id_number");
                String gender = rs.getString("gender");
                String className = rs.getString("class");
                int score = rs.getInt("score");

                System.out.printf("%-15s %-20s %-10s %-20s %-10s\n", name, id_number, gender, className, score);
            }
        } catch (SQLException e) {
            e.printStackTrace();
        } finally {
            try {
                if (rs != null) {
                    rs.close();
                }
                if (pstmt != null) {
                    pstmt.close();
                }
                conn.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
    }
}

以上代码演示了如何从数据库中查询所有学生的信息,并将结果输出到控制台上。

运行程序

在完成以上步骤后,可以编译和运行Java代码,添加数据和查询数据。

示例1:添加一个学生信息

public class App {
    public static void main(String[] args) {
        InsertStudent insert = new InsertStudent();
        insert.insertStudent("张三", "20180101", "男", "计科1801", 80);
    }
}

以上代码表示将一个名为“张三”、学号为“20180101”、性别为“男”、班级为“计科1801”、成绩为80分的学生信息添加到数据库中。

示例2:查询所有学生信息

public class App {
    public static void main(String[] args) {
        QueryStudent query = new QueryStudent();
        query.queryAllStudent();
    }
}

以上代码表示从数据库中查询所有学生的信息,并输出到控制台。

完整源码

完整的Java代码如下所示:

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

public class DatabaseConnection {

    public static final String url = "jdbc:mysql://localhost:3306/students";
    public static final String user = "root";
    public static final String password = "123456";

    public static Connection getConnection() {
        Connection conn = null;
        try {
            Class.forName("com.mysql.jdbc.Driver");
            conn = DriverManager.getConnection(url, user, password);
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return conn;
    }
}

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

public class InsertStudent {

    public void insertStudent(String name, String id_number, String gender, String className, int score) {
        Connection conn = DatabaseConnection.getConnection();
        PreparedStatement pstmt = null;

        if (conn == null) {
            return;
        }

        String sql = "INSERT INTO `students` (`name`, `id_number`, `gender`, `class`, `score`) VALUES (?, ?, ?, ?, ?)";

        try {
            pstmt = conn.prepareStatement(sql);
            pstmt.setString(1, name);
            pstmt.setString(2, id_number);
            pstmt.setString(3, gender);
            pstmt.setString(4, className);
            pstmt.setInt(5, score);
            pstmt.executeUpdate();
        } catch (SQLException e) {
            e.printStackTrace();
        } finally {
            try {
                if (pstmt != null) {
                    pstmt.close();
                }
                conn.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
    }
}

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

public class QueryStudent {

    public void queryAllStudent() {
        Connection conn = DatabaseConnection.getConnection();
        PreparedStatement pstmt = null;
        ResultSet rs = null;

        if (conn == null) {
            return;
        }

        String sql = "SELECT `name`, `id_number`, `gender`, `class`, `score` FROM `students`";

        try {
            pstmt = conn.prepareStatement(sql);
            rs = pstmt.executeQuery();

            System.out.printf("%-15s %-20s %-10s %-20s %-10s\n", "Name", "ID Number", "Gender", "Class", "Score");
            System.out.println("-------------------------------------------------------");

            while (rs.next()) {
                String name = rs.getString("name");
                String id_number = rs.getString("id_number");
                String gender = rs.getString("gender");
                String className = rs.getString("class");
                int score = rs.getInt("score");

                System.out.printf("%-15s %-20s %-10s %-20s %-10s\n", name, id_number, gender, className, score);
            }
        } catch (SQLException e) {
            e.printStackTrace();
        } finally {
            try {
                if (rs != null) {
                    rs.close();
                }
                if (pstmt != null) {
                    pstmt.close();
                }
                conn.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
    }
}

public class App {
    public static void main(String[] args) {
        InsertStudent insert = new InsertStudent();
        insert.insertStudent("张三", "20180101", "男", "计科1801", 80);

        QueryStudent query = new QueryStudent();
        query.queryAllStudent();
    }
}

结论

通过以上实例演示,读者应该已经掌握如何使用Java和MySQL实现一个学生信息管理系统的基础操作,包括连接数据库、添加数据、查询数据等。

同时,本文提供了完整的Java源码,读者可以基于此进行二次开发和扩展。

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

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

相关文章

  • 5分钟快速创建spring boot项目的完整步骤

    下面我将为您详细讲解“5分钟快速创建springboot项目的完整步骤”的攻略: 确定项目名称及配置环境 在开发机器上安装并配置好Java的环境变量及相关依赖。 确定项目的名称和描述。如“hello-world-springboot”。 打开网址https://start.spring.io/。这是官方提供的springboot项目生成器,可以方便地帮助我们…

    Java 2023年5月15日
    00
  • Spring集成MyBatis完整实例(分享)

    下面我将详细讲解Spring集成MyBatis的完整攻略,并附上两个示例。 1. 准备工作 在开始之前,需要完成以下准备工作: 安装Java JDK和Maven。 创建一个Spring项目,可以使用Maven构建。 添加Spring、MyBatis相关依赖,如下所示: <dependencies> <!– Spring相关依赖 –&gt…

    Java 2023年5月20日
    00
  • MyBatis中的JdbcType映射使用详解

    1. 什么是JdbcType映射 在MyBatis中,默认情况下,MyBatis会自动根据JavaBean属性的类型来映射到对应的JdbcType数据类型。但是在某些情况下,根据JavaBean属性的类型无法满足实际需求,这个时候你可以通过手动进行JdbcType映射。 2. 如何进行JdbcType映射 在MyBatis中可以通过两种方式进行JdbcTyp…

    Java 2023年5月19日
    00
  • java统计字符串中指定元素出现次数方法

    Java统计字符串中指定元素出现次数方法攻略 在Java中统计字符串中指定元素出现次数,我们通常有以下几种方法: 1. 使用正则表达式 我们可以使用正则表达式来匹配指定元素出现的次数。下面是一个示例代码: public static int countOccurrencesUsingRegex(String str, String element) { St…

    Java 2023年5月27日
    00
  • SpringBoot整合MybatisSQL过滤@Intercepts的实现

    下面我将为您详细讲解Spring Boot整合Mybatis SQL过滤@Intercepts的实现的完整攻略。 一、介绍 在使用Mybatis框架时,可能会出现需要对传入的SQL参数进行过滤的需求,如防止SQL注入等。此时可以使用Mybatis提供的@Intercepts注解实现SQL过滤的操作,本文主要介绍如何将@Intercepts与Spring Bo…

    Java 2023年5月20日
    00
  • java实现猜拳游戏试题

    下面我将详细讲解“java实现猜拳游戏试题”的完整攻略。 1. 确定游戏规则 在开始编写程序之前,需要先确定猜拳游戏的规则。通常猜拳游戏有剪刀、石头和布三种手势,其中剪刀克制布,布克制石头,石头克制剪刀。参与游戏的两个玩家选择其中一种手势,如果两个玩家选择的手势相同,则为平局;否则根据手势的胜负关系判断胜负,并输出胜负结果。 2. 编写程序 2.1. 实现游…

    Java 2023年5月23日
    00
  • Java多线程产生死锁的必要条件

    Java多线程产生死锁的必要条件有四个,包括互斥、请求和保持、不可剥夺、环路等待。只有四个条件同时满足,才能导致多线程产生死锁。 互斥 互斥是指当一个线程占用了某个资源,其他的线程就不能再占用该资源。如果在同一时刻有多个线程争夺同一资源,只能有一个线程占用该资源。 请求和保持 请求和保持是指当一个线程保持了某个资源,但同时还需要请求其他资源时,它不会将原有的…

    Java 2023年5月19日
    00
  • SpringBoot超详细讲解@Enable*注解和@Import

    细致讲解@Enable*注解和@Import注解在SpringBoot中的用法: @Enable*注解 @Enable注解是SpringBoot中用来启用某些功能的注解,它们定义在org.springframework.boot.autoconfigure包中,以下是一些常用的@Enable注解: @EnableAutoConfiguration:自动配置,…

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