Java中的SQL查询:(JDBC)如何使用SELECT语句?

时间:2014-05-20 22:31:09

标签: java mysql sql jdbc

MysqlDatabase

这是我连接到我的数据库的查询。

SELECT naam, kleur, sector, aantalZilverstukken, Spel_naam 
FROM speler 
WHERE Spel_Naam = ?

我在netbeans的控制台工作。当我想用Spel_Naam显示表Speler的记录时。

在控制台中我想键入表Spel的主键,然后它会在控制台中显示表Speler的记录。我怎样才能做到这一点。

WHERE Spel_Naam = ?

问号需要是我输入的名称

select语句是否正确?我想在控制台中键入Spel_Naam然后它必须连接到数据库并给我表Speler的记录。我怎么能这样做?

public class SpelerMapper
{
    private final static String LEES_SPELERS_SQL = "SELECT naam, kleur, sector, aantalZilverstukken, Spel_naam FROM speler WHERE Spel_Naam = ?";

    public List<Speler> geefSpelers()
    {

        List<Speler> spelerLijst = new ArrayList<Speler>();

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

            // query database
            ResultSet resultSet = statement.executeQuery(LEES_SPELERS_SQL);

            while (resultSet.next())
            {

                String naam = resultSet.getString("naam");
                String kleur = resultSet.getString("kleur");
                int sector = resultSet.getInt("sector");
                int aantalZilverstukken = resultSet.getInt("aantalZilverstukken");

                Speler speler = new Speler(naam ,kleur, sector , aantalZilverstukken);
                spelerLijst.add(speler);
            }
            statement.close();
            return spelerLijst;
        } catch (SQLException e)
        {
            e.printStackTrace();
        }

    return null;

}

1 个答案:

答案 0 :(得分:2)

使用PreparedStatement s:

String LEES_SPELERS_SQL = "SELECT ... WHERE Spel_Naam = ?";
PreparedStatement prepStmt = con.prepareStatement(LEES_SPELERS_SQL);
prepStmt.setString(1, naam); 

ResultSet rs = prepStmt.executeQuery();

附加说明:作为另一种选择,SQL查询的连接是执行相同任务的不安全方式。有关详细信息,请参阅this文章。