2010-11-26 56 views
0

k J'ai donc créé une base de données appelée dictionaryDatabase en utilisant Apache Derby en Java. La base de données possède une table appelée dictionaryTable et contient deux colonnes, wrongWord et rightWord. Voici ce que j'ai jusqu'à présent:Utilisez la variable déclarée en Java dans la requête SQL

String keyWord = "test"; 

getWords = conn.prepareStatement(
     "SELECT wrongWord FROM dictionaryTable WHERE wrongWord = (?)"); 

Maintenant, pour chaque wrongWord qui fait match KeyWord, je souhaite récupérer la valeur de la colonne rightWord dans la même rangée dans laquelle la valeur wrongWord correspond KEYWORD.

J'ai essayé ce qui suit, mais cela ne fonctionne pas:

ResultSet existingKeywords = getWords.executeQuery(); 

while (existingKeywords.next()) { 
//Get rightWord column values here 
} 

Que dois-je faire ici, et je suis sur la bonne voie?

Merci!

Répondre

4

Vous êtes essentiellement retournerez wrongWord de ce SQL:

SELECT wrongWord FROM dictionaryTable WHERE wrongWord = (?) 

Pourquoi ne pas créer un SQL comme

SELECT rightWord FROM dictionaryTable WHERE wrongWord = (?) 

Et sur la boucle while, faire

while (existingKeywords.next()) { 
//Get rightWord column values here 
    String rightWord = existsingKeywords.getString("rightWord"); 
} 

De toute évidence, je suis sucer le pouce car je ne sais pas quelles colonnes dictionaryTable contient c'est donc une supposition.

En outre, je n'ai pas montré comment gérer les connexions JDBC.

+0

Fait sens. Merci beaucoup! – TookTheRook