2017-06-09 3 views
1

Je voudrais de l'aide en ce qui concerne ce code que j'ai écrit. L'idée est d'entrer un nom d'utilisateur 'nomU' (xx, par exemple) dans le scanner et en utilisant ce nom d'utilisateur, le programme va chercher dans ma base de données et m'apporter tous les 'pref' associés à ce nom d'utilisateur une table nommée 'usermodel'.Extraire des données de la base de données en utilisant la valeur du scanner

try { 
    Scanner sc = new Scanner(System.in); 
    System.out.println("Veuillez saisir un mot :"); 
    String str = sc.nextLine(); 

    Statement stmt2 = null; 
    String query2 = "SELECT pref FROM usermodel WHERE nomU =" + str + ""; 
    stmt2 = connexion.createStatement(); 
    ResultSet resultat2 = stmt2.executeQuery(query2); 
    while (resultat2.next()) { 
     String pref = (String) resultat2.getString("pref"); 
     System.out.println("l' element , " + pref + ",est une préférence de l'utilisateur " + str + " ."); 
    } 
} catch (SQLException e) { 
} 

ici est ce que la table "userModel" ressemble

id  nomU  pref 
------------------------- 
1  xx  adblock 
------------------------- 
2  yy  grammarly 
------------------------- 
3  xx  avast 
------------------------ 

donc le résultat pour NOMu = xx est censé être (Adblock et avast) mais il ne fonctionne pas, quand je rentre le nom d'utilisateur ne se passe rien, je dois souligner que la connexion et tout fonctionne parfaitement.

J'apprécie votre aide.

Répondre

1

chaîne doit être entre 'str', mais je ne suggère pas d'utiliser cette façon, cela peut provoquer une erreur de syntaxe ou injection SQL au lieu, vous devez utiliser PreparedStatement:

String query = "SELECT pref FROM usermodel WHERE nomU = ?"; 

try (PreparedStatement prstm = connection.prepareStatement(query)){ 

    prstm.setSting(str);//set your input the query 

    ResultSet resultat2 = prstm.executeQuery(query2); 
    while (resultat2.next()) { 
     String pref = (String) resultat2.getString("pref"); 
     System.out.println("l' element , " + pref + ",est une préférence de l'utilisateur " + str + " ."); 
    } 
}