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技术站