我正在使用NetBeans IDE连接MySQL数据库,我想使用从用户获取输入值的select查询并将该值放在where条件中。 我收到此错误消息 'where子句'中的未知列'A' 它在我在代码中写入值'A'时有效,但是当它来自用户的输入时它不起作用吗?
String dataSourceName = "testSqlDb";
String dbUrl = "jdbc:odbc:" + dataSourceName;
try {
bloodgroup = jTextField2.getText().trim();
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection con = DriverManager.getConnection(dbUrl, "", "");
Statement s = con.createStatement();
ResultSet rs;
String query = "SELECT COUNT(*) FROM blood_donation WHERE blood_group="
+ bloodgroup;
rs = s.executeQuery(query);
while (rs.next()) {
System.out.println("COUNT(*)=" + rs.getInt("COUNT(*)"));
}
s.close();
con.close();
} catch (Exception e) {
System.out.println(e.getMessage());
JOptionPane.showMessageDialog(null, e.getMessage(), "erro",
JOptionPane.ERROR_MESSAGE, null);
}
答案 0 :(得分:1)
我猜你错过了''
String query = "SELECT COUNT(*) FROM blood_donation WHERE blood_group='"+bloodgroup+"'";
答案 1 :(得分:1)
IF String values ..
String query = "SELECT COUNT(*) FROM blood_donation
WHERE blood_group='"+bloodgroup+"';
如果数字值..
String query = "SELECT COUNT(*) FROM blood_donation
WHERE blood_group="+bloodgroup;
在执行查询之前,请尝试System.out.println("bloodgroup=" + bloodgroup);
并检查您的变量是否具有所需的值。
答案 2 :(得分:0)
您可以尝试用单引号括起用户输入。
String query = "SELECT COUNT(*) FROM blood_donation WHERE blood_group='"+bloodgroup+"'";
创建的查询字符串将是
SELECT COUNT(*) FROM blood_donation WHERE blood_group = 'A'
而不是
SELECT COUNT(*) FROM blood_donation WHERE blood_group = A
这可能是您遇到问题的原因。