我想做一个Java(idea)+Mysql的四六级查分系统,项目运行效果如下:用户输入身份证号和密码,在与数据库中的信息匹配成功后,得到相应的成绩,请你帮我做出这个查分系统
时间: 2024-06-11 20:09:58 浏览: 155
很好,我可以给你提供一个基本的代码框架和思路,但是需要你自己完成具体的实现。
首先,你需要创建一个Mysql数据库,并在其中创建一个表格用于存储用户信息和成绩。表格中应包含以下字段:id、name、password、idCard、cet4score、cet6score。
接下来,你需要使用Java连接数据库,并实现用户登录和成绩查询功能。以下是一个基本的代码框架:
```
import java.sql.*;
public class CetScoreSystem {
// 数据库连接信息
private static final String URL = "jdbc:mysql://localhost:3306/cet_score_system?useSSL=false&serverTimezone=UTC";
private static final String USER = "root";
private static final String PASSWORD = "password";
public static void main(String[] args) {
// 连接数据库
Connection conn = null;
try {
conn = DriverManager.getConnection(URL, USER, PASSWORD);
} catch (SQLException e) {
e.printStackTrace();
}
// 用户登录
String idCard = "1234567890";
String password = "123456";
int userId = login(conn, idCard, password);
// 成绩查询
if (userId > 0) {
int cet4Score = queryCet4Score(conn, userId);
int cet6Score = queryCet6Score(conn, userId);
System.out.println("您的四级成绩为:" + cet4Score + ",六级成绩为:" + cet6Score);
} else {
System.out.println("登录失败,请检查身份证号和密码是否正确。");
}
// 关闭数据库连接
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
// 用户登录
private static int login(Connection conn, String idCard, String password) {
int userId = 0;
try {
String sql = "SELECT id FROM user WHERE idCard = ? AND password = ?";
PreparedStatement pstmt = conn.prepareStatement(sql);
pstmt.setString(1, idCard);
pstmt.setString(2, password);
ResultSet rs = pstmt.executeQuery();
if (rs.next()) {
userId = rs.getInt("id");
}
rs.close();
pstmt.close();
} catch (SQLException e) {
e.printStackTrace();
}
return userId;
}
// 成绩查询(四级)
private static int queryCet4Score(Connection conn, int userId) {
int cet4Score = 0;
try {
String sql = "SELECT cet4score FROM user WHERE id = ?";
PreparedStatement pstmt = conn.prepareStatement(sql);
pstmt.setInt(1, userId);
ResultSet rs = pstmt.executeQuery();
if (rs.next()) {
cet4Score = rs.getInt("cet4score");
}
rs.close();
pstmt.close();
} catch (SQLException e) {
e.printStackTrace();
}
return cet4Score;
}
// 成绩查询(六级)
private static int queryCet6Score(Connection conn, int userId) {
int cet6Score = 0;
try {
String sql = "SELECT cet6score FROM user WHERE id = ?";
PreparedStatement pstmt = conn.prepareStatement(sql);
pstmt.setInt(1, userId);
ResultSet rs = pstmt.executeQuery();
if (rs.next()) {
cet6Score = rs.getInt("cet6score");
}
rs.close();
pstmt.close();
} catch (SQLException e) {
e.printStackTrace();
}
return cet6Score;
}
}
```
在这个代码框架中,我们首先定义了数据库连接信息,然后在main方法中连接数据库。然后,我们调用login方法实现用户登录,并获取userId。如果userId大于0,说明登录成功,我们就调用queryCet4Score和queryCet6Score方法查询对应的成绩,并输出结果。如果登录失败,则输出错误提示信息。
在login方法中,我们使用PreparedStatement预处理语句来避免SQL注入攻击。在queryCet4Score和queryCet6Score方法中,我们使用了同样的方法来查询成绩。
这只是一个基本的代码框架,你需要根据具体需求进行修改和完善。例如,你可以添加输入身份证号和密码的功能、注册功能、修改密码功能等等。但是,这个框架应该足够帮你完成基本的四六级成绩查询系统了。
阅读全文