java查询数据库里面的学生成绩排名冒泡排序
时间: 2023-07-10 17:25:30 浏览: 189
好的,这是一个常见的问题。以下是一个简单的Java代码示例,用于从数据库中查询学生成绩并进行冒泡排序,以获得排名:
```java
import java.sql.*;
import java.util.*;
public class StudentRanking {
public static void main(String[] args) throws SQLException {
// 建立数据库连接
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/test", "root", "password");
// 执行 SQL 查询
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery("SELECT name, score FROM student");
// 将结果存储在一个List中
List<Student> studentList = new ArrayList<>();
while (rs.next()) {
String name = rs.getString("name");
int score = rs.getInt("score");
Student student = new Student(name, score);
studentList.add(student);
}
// 对学生成绩进行冒泡排序
for (int i = 0; i < studentList.size() - 1; i++) {
for (int j = 0; j < studentList.size() - i - 1; j++) {
if (studentList.get(j).getScore() < studentList.get(j + 1).getScore()) {
Student temp = studentList.get(j);
studentList.set(j, studentList.get(j + 1));
studentList.set(j + 1, temp);
}
}
}
// 输出学生成绩排名
int rank = 1;
for (Student student : studentList) {
System.out.println("排名:" + rank + ",姓名:" + student.getName() + ",成绩:" + student.getScore());
rank++;
}
// 关闭数据库连接
conn.close();
}
}
class Student {
private String name;
private int score;
public Student(String name, int score) {
this.name = name;
this.score = score;
}
public String getName() {
return name;
}
public int getScore() {
return score;
}
}
```
这个示例代码假设你已经有了一个名为 "student" 的表,其中包含学生的姓名和成绩。如果你的表结构不同,你需要根据自己的情况修改查询语句和Student类的构造函数。
阅读全文