結果セットの開始前に例外が発生したというエラーが表示されます。値 (MySQL データベースからのスコア) を取得し、プレーヤーのスコアに基づいて Java ランクに 1 つ追加しようとしています。これは、スコアボードを作成することです。
そのため、プレーヤーのスコアが現在のスコアよりも低い場合、ランク 1 で投稿されます。それより高い場合、プログラムはスコアを MySQL データベースの次のエントリと照合します。現在のすべてのエントリのランクを 1 ずつインクリメントする機能をまだ実装していません。
結論: MySQL と Java を使用してスコアボードを作成しています。Java プログラムは、入力に基づいてスコア エントリを作成し、それを MySQL データベースに送信します。
System.out.println("Your score is: "+score*2+" (A lower score is better.)");
try {
// create a java mysql database connection
String myDriver = "com.mysql.jdbc.Driver";
String myUrl = "jdbc:mysql://4.30.110.246:3306/apesbridge2013";
String dbName = "apesbridge2013";
String tbName = period + "period";
Class.forName(myDriver);
Connection conn = DriverManager.getConnection(myUrl, "user", CENSORED);
next = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
ResultSet resultSet = next.executeQuery("SELECT * FROM " + tbName);
int cscore = resultSet.getInt("score");
for(int sscore = score; sscore > cscore;){
resultSet.next();
cscore = resultSet.getInt("score");
rank++;
}
stmt = conn.createStatement();
stmt.executeUpdate("insert into " + dbName + "." + tbName + " " + "values(" + rank + ", '" + name + "', " + score + ")");
stmt.close();
conn.close();
}
catch (Exception e)
{
System.err.println("Got an exception! ");
System.err.println(e.getMessage());
}
}