MySQL未执行(Java)

MySQL未执行(Java),java,mysql,Java,Mysql,由于某些原因,我无法使用此代码更新我的数据库。有人能帮我吗?我得到的是,当一个玩家完成某项任务时,它会记录他们所花的时间,当且仅当他们的时间低于最佳记录时间时 public void setScores(MapleCharacter chr, int mapid, float time) { Connection con1 = DatabaseConnection.getConnection(); try { PreparedStatement ps;

由于某些原因,我无法使用此代码更新我的数据库。有人能帮我吗?我得到的是,当一个玩家完成某项任务时,它会记录他们所花的时间,当且仅当他们的时间低于最佳记录时间时

    public void setScores(MapleCharacter chr, int mapid, float time) {
    Connection con1 = DatabaseConnection.getConnection();
    try {
        PreparedStatement ps;
        ps = con1.prepareStatement("SELECT time from jumpquests WHERE characterid = ? AND mapid = ?");
        ps.setInt(1, chr.getId());
        ps.setInt(2, chr.getMapId());
        ResultSet rs = ps.executeQuery();
        if (rs.next()) {
            if (time < rs.getFloat("time")) {
                executeScores(chr, mapid, time);
            }
        } else {
            executeScores(chr, mapid, time);
        }
        rs.close();
        ps.close();
    } catch (Exception Ex) {
        System.out.println("Ran into exception.");
    }
}

public void executeScores(MapleCharacter chr, int mapid, float time) {
    System.out.println("Setting scores for " + chr.getName() + " for map " + mapid + " at time " + time);
    Connection con1 = DatabaseConnection.getConnection();
    try {
        PreparedStatement ps = con1.prepareStatement("REPLACE INTO jumpquests (characterid, mapid, time) values (?,?,?)");
        ps.setInt(1, chr.getId());
        ps.setInt(2, chr.getMapId());
        ps.setFloat(3, time);
        ps.close();
    } catch (Exception e) {
        System.out.println("Executing scores ran into exception.");
    }
}
public void setcores(字符chr、int-mapid、浮点时间){
Connection con1=DatabaseConnection.getConnection();
试一试{
编制报表;
ps=con1.prepareStatement(“从characterid=?和mapid=?”的跳转任务中选择时间”);
ps.setInt(1,chr.getId());
ps.setInt(2,chr.getMapId());
结果集rs=ps.executeQuery();
如果(rs.next()){
如果(时间
我不确定与
JAVA
相关的任何内容,但您的
替换为
SQL语句包含保留字
时间
,需要使用如下backtique进行转义。有关更多信息,请参阅

REPLACE INTO jumpquests (characterid, mapid, time) values (?,?,?)
                                               ^........Here
应该是

REPLACE INTO jumpquests (characterid, mapid, `time`) values (?,?,?)

我不确定与
JAVA
相关的任何内容,但您的
REPLACE-INTO
SQL语句包含保留字
time
,需要使用如下backtique进行转义。有关更多信息,请参阅

REPLACE INTO jumpquests (characterid, mapid, time) values (?,?,?)
                                               ^........Here
应该是

REPLACE INTO jumpquests (characterid, mapid, `time`) values (?,?,?)

不要输出固定的(无用的)错误消息。如果mysql抛出错误,那么让
catch
从mysql中吐出实际的错误消息。您是否得到某种异常?到底是什么不起作用?你有错误吗?您还应该考虑从异常中记录消息和StAdTrack,而不仅仅是您的自定义消息。我知道它不会被捕获,因为它从未被打印过。我省略了Pr.ExcExtUpDeDeO()LOL。我现在看看它是否都好。不要输出固定的(无用的)错误消息。如果mysql抛出错误,那么让
catch
从mysql中吐出实际的错误消息。您是否得到某种异常?到底是什么不起作用?你有错误吗?您还应该考虑从异常中记录消息和StAdTrack,而不仅仅是您的自定义消息。我知道它不会被捕获,因为它从未被打印过。我省略了PrExcExtUpDATE()LOL。我现在看看它是否都好。如果我要检索表中记录的前10次,我怎么做,然后把它转换成一个10行的字符串,可以打印出来?这不是问题的一部分。考虑同样的问题。如果您只需要前10条记录,则使用order by with limit子句,如
order by comscolumn limit 10
。此外,如果要检索表中记录的前10条记录,我将如何进行检索,然后将其转换为可以打印的10行字符串?这不是问题的一部分。考虑同样的问题。如果您只需要前10条记录,请使用order by with limit子句,如
order by comscolumn limit 10