JDBC retour jeu de résultats vide

Je suis à l'aide de JDBC pour de très simple connectivité de base de données.

J'ai créé ma connexion/déclaration et exécuté une requête.
Je vérifie la requête de l'objet de l'instruction dans le débogueur de confirmer qu'il est l'envoi d'un bon de requête.
J'ai ensuite vérifié la requête (copié directement à partir du débogueur) sur la base de données pour s'assurer qu'il renvoie des données.
Le retour de l'objet resultset, cependant, donne de faux .next()

Existe-il des écueils les plus courants ici que je suis absent?

public List<InterestGroup> getGroups() {
    myDB.sendQuery("select distinct group_name From group_members where
            username='" + this.username + "'");
    ResultSet results = myDB.getResults();
    List<InterestGroup> returnList = new ArrayList<InterestGroup>();
    try {
        while (results.next()) {
            returnList.add(new InterestGroup(results.getString("group_name"), myDB));
        } 
        return returnList;
    } catch (SQLException e) {
        e.printStackTrace();
        return null;
    }

}

Et la myDB classe (wrapper simple qui me permet de supprimer la connexion/code d'instruction dans n'importe quel projet)

public void sendQuery(String query){
    this.query = query;
    try {
        if(statement == null){
            statement = connection.createStatement();
        }
        results = statement.executeQuery(query);
    } catch (SQLException e) {
        System.out.println(query);
        currentError = e;
        results = null;
        printError(e, "querying");
    }

}

public ResultSet getResults(){
    return results;
}

EDIT:
Basé sur les suggestions que j'ai surtout remanié mon code mais toujours le même problème. Ci-dessous est une forme simplifiée de la portion de code qui a le même problème.

private boolean attemptLogin(String uName, String pWord) {

    ResultSet results;
    try{
        try {
            Class.forName("oracle.jdbc.driver.OracleDriver");
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        }
        connection =DriverManager.getConnection(connectionString,user,password);
        PreparedStatement statement = connection.prepareStatement("select username from users where username='testuser'");
        results = statement.executeQuery();
        if(results != null && results.next()){
            System.out.println("found a result");
            statement.close();
            return true;
        }
        System.out.println("did not find a result");
        statement.close();
        return false;
    }catch(SQLException e){
        e.printStackTrace();
        return false;
    }

}

J'ai également codé en dur la requête en place pour l'instant à éliminer cette source d'erreur. Même problème qu'avant (ce qui se passe avec toutes les requêtes). Débogueur affiche tous les objets se instancié et pas de traces de pile sont imprimés. Par ailleurs, je suis en mesure d'utiliser le même code (et le plus compliqué code énumérés précédemment) dans un autre projet.

Merci de poster votre code. Sans le code, il n'y a pas assez d'info ici de donner une réponse.
Il pourrait être à l'intérieur de la getResults fonction, si vous pouviez poster ça aussi ça aide beaucoup.
désolé, a ajouté que ainsi.
Êtes-vous sûr à 100% que votre connectionString, user et password sont corrects?
Je n'ai en effet 🙂

OriginalL'auteur dpsthree | 2010-12-03