Java编写:1.数据库student中的表stud中存放了含有学号学号、姓名和成绩信息的若干学生信息,编写程序实现下列功能: (1)针对表stud编写一个java类Stud,包含表中各字段作为属性及对各属性的操作; (2)输入若干学生信息,将其插入到表stud中; (3)查询表stud中所有学生信息,将查询结果转换成类Stud对象,并为客户从ArrayList集合中; (4)使用匿名类实现接口Comparator,完成对ArrayList集合中学生信息的成绩进行降序排列; (5)输出排序前后的结果。
时间: 2024-04-06 18:34:06 浏览: 114
用java编写的实现学生信息操作的程序
3星 · 编辑精心推荐
好的,以下是我为您编写的Java程序,它实现了针对表stud的相关功能:
1. 针对表stud编写一个java类Stud,包含表中各字段作为属性及对各属性的操作:
```java
public class Stud {
private String sno; // 学号
private String name; // 姓名
private double score; // 成绩
public Stud(String sno, String name, double score) {
this.sno = sno;
this.name = name;
this.score = score;
}
public String getSno() {
return sno;
}
public void setSno(String sno) {
this.sno = sno;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public double getScore() {
return score;
}
public void setScore(double score) {
this.score = score;
}
}
```
2. 输入若干学生信息,将其插入到表stud中:
```java
public static void insertStud(Stud stud) {
Connection conn = null;
PreparedStatement pstmt = null;
try {
Class.forName("com.mysql.jdbc.Driver");
conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/student", "root", "password");
String sql = "INSERT INTO stud(sno, name, score) VALUES(?, ?, ?);";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, stud.getSno());
pstmt.setString(2, stud.getName());
pstmt.setDouble(3, stud.getScore());
pstmt.executeUpdate();
System.out.println("学生信息插入成功!");
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
if (pstmt != null) {
pstmt.close();
}
if (conn != null) {
conn.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
}
}
```
3. 查询表stud中所有学生信息,将查询结果转换成类Stud对象,并为客户从ArrayList集合中:
```java
public static ArrayList<Stud> queryAllStud() {
Connection conn = null;
PreparedStatement pstmt = null;
ResultSet rs = null;
ArrayList<Stud> stus = new ArrayList<Stud>();
try {
Class.forName("com.mysql.jdbc.Driver");
conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/student", "root", "password");
String sql = "SELECT * FROM stud;";
pstmt = conn.prepareStatement(sql);
rs = pstmt.executeQuery();
while (rs.next()) {
Stud stud = new Stud(rs.getString("sno"), rs.getString("name"), rs.getDouble("score"));
stus.add(stud);
}
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
if (rs != null) {
rs.close();
}
if (pstmt != null) {
pstmt.close();
}
if (conn != null) {
conn.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
}
return stus;
}
```
4. 使用匿名类实现接口Comparator,完成对ArrayList集合中学生信息的成绩进行降序排列:
```java
ArrayList<Stud> stus = queryAllStud();
Collections.sort(stus, new Comparator<Stud>() {
public int compare(Stud stud1, Stud stud2) {
if (stud1.getScore() > stud2.getScore()) {
return -1;
} else if (stud1.getScore() < stud2.getScore()) {
return 1;
}
return 0;
}
});
```
5. 输出排序前后的结果:
```java
// 输出排序前的结果
System.out.println("排序前的学生信息:");
for (Stud stud : stus) {
System.out.println(stud.getSno() + " " + stud.getName() + " " + stud.getScore());
}
// 输出排序后的结果
System.out.println("排序后的学生信息:");
for (Stud stud : stus) {
System.out.println(stud.getSno() + " " + stud.getName() + " " + stud.getScore());
}
```
希望这可以回答您的问题,如果您还有其他问题,请随时问我。
阅读全文