【发布时间】:2013-01-02 14:54:00
【问题描述】:
我收到一条错误消息,指出我在结果集开始之前遇到了异常。我正在尝试获取一个值(来自 MySQL 数据库的分数)并根据玩家分数将一个值添加到 Java 排名中。这是为了创建一个记分牌。
因此,如果玩家的分数低于当前分数,则会以排名 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());
}
}
【问题讨论】:
-
那是什么异常,你能提供给我们吗?
-
另外,您可以通过计算得分较低的记录数来获得排名。这比在java中与数据库中的所有记录进行比较会更有效
-
@spencer7593 对这个老问题给出了实质性答案,但您既没有回复也没有投票。当您收到帮助时,请考虑以某种形式回复,如果只是为了鼓励我们在这里需要的那种乐于助人的人!