繁体   English   中英

用Java读取MySQL数据库时出现问题

[英]Problems reading MySQL database in Java

我正在使用PHP + MySQL和Java开发在线游戏来制作服务器。

目前工作得很好,但是我有一个烦人的问题。 我有一个简单的函数,可以从数据库中读取一些数据

public static String loadWeapon(int playerID) {
    query = "SELECT * FROM players WHERE playerID=" + playerID;
    try {
        ResultSet result = query(query);
        while(result.next()) {
            return result.getString("weapon");
        }
    } catch (SQLException e) {
        e.printStackTrace();
    }
    return null;
}

public static synchronized ResultSet query(String query) throws SQLException {
    //create a new statment to execute the query
    Statement statment = connection.createStatement();
    //Execute the query
    ResultSet result = statment.executeQuery(query);
    //Wait a bit (If the query is too long...
    statment.setQueryTimeout(300);
    //And return the result
    return result;
}

该功能运行良好,现在假设我们打开服务器并读取数据库,并且玩家拥有“剑”作为武器,但他在商店购买了新剑,数据库正确地在服务器中对其进行了更新。 我再次运行该函数,但始终返回第一个值,除非重新启动服务器。 我对其他功能也做过同样的事情,但从未遇到过这个问题,Java是否有类似高速缓存的东西会引发此问题?

确保不使用MySQLs内部缓存。 您可以通过添加SQL_NO_CACHE

SELECT SQL_NO_CACHE * FROM players WHERE playerID= ...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM