【发布时间】:2012-07-03 16:35:06
【问题描述】:
我正在使用 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);
}
【问题讨论】:
-
你可以使用官方的MySQL driver来代替JDBC/ODBC桥的驱动。 还要注意:您的代码容易受到 SQL 注入的影响;使用 PreparedStatement。 这里不认真,但您可以获取名称范围为 A-D 等密码“secret”的用户数。
标签: java mysql select count where