Java:将MySQL数据库中的数据存储到二维字符串数组中有困难
我正在制作一个游戏作为学校项目,但我在从数据库中获取数据并将其存储到字符串[]中时遇到问题。 字符串[][]保存我的线路板元素,这些元素作为VARCHAR存储在数据库中。 我的board表有以下列:x、y、Icoon、SPELBORDD、spelID 这是我检索数据的代码: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
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
?很抱歉,我重新阅读了问题,我认为这不是问题所在。我想,是查询有问题,您在调试器中看到结果集是否有任何元素了吗?