Java:将MySQL数据库中的数据存储到二维字符串数组中有困难

Java:将MySQL数据库中的数据存储到二维字符串数组中有困难,java,mysql,arrays,Java,Mysql,Arrays,我正在制作一个游戏作为学校项目,但我在从数据库中获取数据并将其存储到字符串[]中时遇到问题。 字符串[][]保存我的线路板元素,这些元素作为VARCHAR存储在数据库中。 我的board表有以下列:x、y、Icoon、SPELBORDD、spelID 这是我检索数据的代码: try (Connection conn = DriverManager.getConnection(Connectie.JDBC_URL)) { PreparedStatement query = con

我正在制作一个游戏作为学校项目,但我在从数据库中获取数据并将其存储到字符串[]中时遇到问题。 字符串[][]保存我的线路板元素,这些元素作为VARCHAR存储在数据库中。 我的board表有以下列:x、y、Icoon、SPELBORDD、spelID

这是我检索数据的代码:

try (Connection conn = DriverManager.getConnection(Connectie.JDBC_URL)) {

        PreparedStatement query = conn.prepareStatement("SELECT * FROM spelbord WHERE spelID = nr AND spelbordID = 1 ");
        ResultSet rs = query.executeQuery();
        while(rs.next()){
            x = rs.getInt("x");
            y = rs.getInt("y");
            spelbord[x][y] = rs.getString("Icoon");              
        }

    } catch (SQLException ex) {
        System.out.println(ex.getMessage());
        throw new RuntimeException(ex);
    }

    return spelbord;
每当我调试时,spelbord总是显示为完全空。
以前我只有3列(x、y、Icoon)时它就可以工作了,但由于每个棋盘和游戏都需要标识符,所以我不得不更改它。从那一刻起,它就停止工作。

正如我在评论中所说,您的SQL不正确:

SELECT * FROM spelbord WHERE spelID = nr AND spelbordID = 1 
                                      ^^
nr
既不是有效的sql标识符,也不是顾名思义的id。 您需要通过以下方式将id放入其中:

因此,更新后的代码如下所示:

final String sql = "SELECT x, y, Icoon FROM spelbord WHERE spelID = ? AND spelbordID = ?";

query = conn.prepareStatement(sql);
query.setString(1, your_spel_id);
query.setString(2, your_spel_bord_id);

rs = query.executeQuery();
while(rs.next()) {

}

spelID=nr
,您确定这是正确的吗?是的,nr是一个参数。抱歉,我只粘贴了实际的检索代码。psysical列
nr
中的值是否在数据库中?您在哪里声明了
spelbord
?很抱歉,我重新阅读了问题,我认为这不是问题所在。我想,是查询有问题,您在调试器中看到结果集是否有任何元素了吗?