Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用scanner值从数据库中提取数据_Java_Database_Jdbc_Java.util.scanner - Fatal编程技术网

Java 使用scanner值从数据库中提取数据

Java 使用scanner值从数据库中提取数据,java,database,jdbc,java.util.scanner,Java,Database,Jdbc,Java.util.scanner,关于我写的这段代码,我需要一些帮助 其想法是在扫描仪中输入用户名“nomU”(例如xx),并使用此用户名,程序将在我的数据库中搜索,并从名为“usermodel”的表中为我提供与此用户名关联的所有“pref” try { Scanner sc = new Scanner(System.in); System.out.println("Veuillez saisir un mot :"); String str = sc.nextLine(); Statement

关于我写的这段代码,我需要一些帮助

其想法是在扫描仪中输入用户名“nomU”(例如xx),并使用此用户名,程序将在我的数据库中搜索,并从名为“usermodel”的表中为我提供与此用户名关联的所有“pref”

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) {
}
下面是表“usermodel”的外观

id     nomU     pref
-------------------------
1       xx      adblock
-------------------------
2       yy      grammarly
-------------------------
3       xx      avast
------------------------
所以nomU=xx的结果应该是(adblock和avast) 但它不起作用,当我输入用户名时,什么都没有发生, 我必须指出,这种联系和每件事都是完美的


我很感激你的帮助

字符串应该介于
'str'
之间,但我不建议使用这种方式,因为这可能会导致语法错误或SQL注入,而您必须使用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 + " .");
    }
}