Java 使用scanner值从数据库中提取数据
关于我写的这段代码,我需要一些帮助 其想法是在扫描仪中输入用户名“nomU”(例如xx),并使用此用户名,程序将在我的数据库中搜索,并从名为“usermodel”的表中为我提供与此用户名关联的所有“pref”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
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 + " .");
}
}