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

时间:2014-05-21 19:55:07

标签: mysql sql 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();
     }
  }

1 个答案:

答案 0 :(得分:0)

没有

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