Netbeans将来自查询的数据放入变量中



所以我做了一个查询,这是一个内连接,查询是好的。但是我想把从数据库中选择的数据放入另一个类的变量中。

可以看到代码

 Spel spel = null;
 spel.setNaamSpel(spelUniekeNaam);

我没有为所有人做这件事,但这是正确的方法吗?

  public void laadSpel(String spelNaam)
{
    String LAAD_SPELERS_SQL = "SELECT spel.naam, spel.aantalTeSpelenRondes, speler.naam, speler.kleur, speler.sector, speler.aantalZilverstukken, spelbord.type, spelbord.ecoWaarde, spelbord.stratWaarde, "
            + "spelbord.xcoord, spelbord.ycoord, spelbord.aantalKamelen, spelbord.kleur" +
        "From spel INNER JOIN speler ON spel.naam = speler.Spel_naam" +
                "INNER JOIN spelbord ON spel.naam = spelbord.Spel_naam" +
            "WHERE spel.naam = '" + spelNaam + "'";

    Statement statement;
    Connection connection = PersistentieController.getInstance().getConnection();

    try
    {
        statement = connection.createStatement();
        ResultSet resultset = statement.executeQuery(LAAD_SPELERS_SQL);
        while (resultset.next())
        {
           String spelUniekeNaam = resultset.getString("spel.naam");
           String spelAantalRondes = resultset.getString("spel.aantalTeSpelenRondes");
           String spelerNaam = resultset.getString("speler.naam");
           String spelerKleur = resultset.getString("speler.kleur");
           int spelerSector = resultset.getInt("speler.sector");
           int spelerKrediet = resultset.getInt("speler.aantalZilverstukken");
           String spelbordType = resultset.getString("spelbord.type");
           int spelbordEco = resultset.getInt("spelbord.ecoWaarde");
           int spelbordStrat = resultset.getInt("spelbord.stratWaarde");
           int spelbordX = resultset.getInt("spelbord.xcoord");
           int spelbordY = resultset.getInt("spelbord.ycoord");
           int spelbordAantalKamelen = resultset.getInt(("spelbord.aantalKamelen"));
           String spelbordKleur = resultset.getString("spelbord.kleur");
           Spel spel = null;
           spel.setNaamSpel(spelUniekeNaam);

        }
         statement.close();
    } catch (SQLException e)
    {
        e.printStackTrace();
     }
  }

No.

  1. 你的其他类Spel变量将不会出现在while循环之外。
  2. spelUniekeNaam将被结果集中遍历的每个新记录覆盖。
  3. 请避免使用字符串连接SQL查询,正如我在你之前的帖子中指出的。这只是要求SQL注入攻击。

相关内容

  • 没有找到相关文章

最新更新