gpt4 book ai didi

java - 使用扫描器值从数据库中提取数据

转载 作者:搜寻专家 更新时间:2023-10-30 23:34:46 25 4
gpt4 key购买 nike

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

想法是在扫描仪中输入用户名“nomU”(例如 xx)并使用该用户名,程序将在我的数据库中搜索并从名为“usermodel”的表。

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 注入(inject),您必须使用 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 + " .");
}
}

关于java - 使用扫描器值从数据库中提取数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44463819/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com