我试图查询MySQL数据库
statement = conn.createStatement();
String sql = "select * from file_post where gas_key='"+commun+"'";
fp =statement.executeQuery(sql);
其中commun
是
String commun= (String) session.getAttribute("commun");
我得到例外:
com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException:未知列'兄弟'在' where子句'
bro
是commun的价值。
我也试过PreparedStatement
,但这也给了我同样的例外。
但是当我在MySQL命令行中进行查询时:
select * from file_post where gas_key='bro';
它非常完美,并返回确切的数据。
我无法弄清楚为什么在Java类中使用相同的查询时它会给我异常。
答案 0 :(得分:1)
当您与"
不匹配时,通常会发生此异常,以避免此类问题使用PreparedStatement
PreparedStatement st = con.prepareStatement("SELECT * FROM file_post WHERE gas_key=?");
st.setString(1,commun);
rs = st.executeQuery();
答案 1 :(得分:0)
您可以在设置变量后尝试打印preparedStatement ...只是为了检查正在构建的查询......
的System.out.println(preparedStatement时);
这里的fp是什么?结果集?