我正在使用一个工作正常的准备好的语句,例如如果我跑
Select * from users where name = 'john' and sName = sName
我得到了所有名字叫约翰的人的列表。但是,如果我执行查询
Select * from users where name= ? and sName = ?
查询没有返回任何内容,我认为这是因为它将“”添加到正在传递的字符串中?
//n value is passed through GUI interface.
String s = "sName";
PreparedStatement prep = "Select * from users where name= ? and sName= ?";
prep.setString(1, n);
prep.setString(2, s);
感谢您的帮助
最佳答案
你做错了。 您必须首先创建一个 PreparedStatement 变量并使用查询初始化它,然后使用 PreparedStatement 的 executeQuery() 方法执行它。
它看起来像......
String s = "surname";
String query = "Select * from users where name= ? and surname = ?";
PreparedStatement prep = connection.prepareStatement(query);
prep.setString(1, n);
prep.setString(2, s);
ResultSet rs = prep.executeQuery();
关于java - sql准备语句和java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29515628/