欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

JAVA學(xué)生成績排名MySQL

夏志豪2年前11瀏覽0評論

對于JAVA學(xué)生來說,掌握MySQL數(shù)據(jù)庫的使用是十分必要的。在學(xué)生的成績中,學(xué)生的排名是各位老師和同學(xué)們所關(guān)注的問題。本文將介紹如何使用MYSQL數(shù)據(jù)庫實現(xiàn)對學(xué)生成績排名的功能。

首先,我們需要在MYSQL中創(chuàng)建一個學(xué)生成績表。可以在MYSQL Workbench上面使用以下代碼創(chuàng)建表。

CREATE TABLE `scores` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(100) NOT NULL,
`score` float(2,1) unsigned NOT NULL,
`rank` int(11) NOT NULL,
PRIMARY KEY (`id`),
KEY `idx_name` (`name`) USING BTREE,
KEY `idx_score` (`score`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

上述代碼中,scores表包含了四個字段,分別為id、name、score、rank。其中,id為自增主鍵,name表示學(xué)生姓名,score為學(xué)生分?jǐn)?shù),rank為學(xué)生排名。

接下來,我們需要在JAVA項目中使用JDBC連接MYSQL數(shù)據(jù)庫。在以下代碼中,我們將以查詢學(xué)生成績來實現(xiàn)對學(xué)生排名的計算。

public static void main(String[] args) {
String driver = "com.mysql.cj.jdbc.Driver";
String url = "jdbc:mysql://localhost:3306/test?useSSL=false&serverTimezone=UTC";
String username = "root";
String password = "root";
try {
Class.forName(driver);
Connection conn = DriverManager.getConnection(url, username, password);
String sql = "select name,score from scores order by score desc";
PreparedStatement ps = conn.prepareStatement(sql);
ResultSet rs = ps.executeQuery();
float maxScore = 0;
int rank = 0;
while(rs.next()){
String name = rs.getString("name");
float score = rs.getFloat("score");
if(score< maxScore){
rank++;
}
maxScore = score;
String sqlUpdate = "update scores set rank = ? where name = ?";
PreparedStatement psUpdate = conn.prepareStatement(sqlUpdate);
psUpdate.setInt(1, rank);
psUpdate.setString(2, name);
psUpdate.executeUpdate();
}
rs.close();
ps.close();
conn.close();
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
}

最后,我們需要在MYSQL中查詢學(xué)生排名信息。可以通過以下代碼實現(xiàn)。

select name, score, rank from scores order by rank;

以上就是使用MYSQL數(shù)據(jù)庫實現(xiàn)學(xué)生成績排名功能的全部過程,希望對大家有所幫助。