Java+MySQL实现学生信息管理系统
本文将介绍如何使用Java和MySQL数据库实现一个简单的学生信息管理系统,并提供完整的源码和演示。
准备工作
为了使用Java和MySQL实现学生信息管理系统,需要先进行以下准备工作:
- 安装Java开发环境(JDK)
- 安装MySQL数据库
- 安装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技术站