当我使用下面的代码时,它完美运行。在createStatement中获取错误
PreparedStatement st = con.prepareStatement("select * from users where username=?");
st.setString(1, userId);
ResultSet rs = st.executeQuery();
但是,当我使用下面的代码,我得到一个错误,userId
(即我传递的参数)是一个无效的列名。
Statement st = con.createStatement();
ResultSet rs = st.executeQuery("select * from users where username="+userId);
为什么声明方法不起作用,我必须使用PreparedStatement
?
我想与您的查询,你需要用'单引号和双引号userID' ......像'” '用户ID'“'。但说实话,你最好使用第一个查询 – ryekayo
尝试像这样'ResultSet rs = st.executeQuery(“select * from users where username ='”+ userId +“'”);''但PreparedStatement'优先。 – drgPP