java - sql准备语句和java

标签 java sql

我正在使用一个工作正常的准备好的语句,例如如果我跑

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 变量并使用查询初始化它,然后使用 PreparedStatementexecuteQuery() 方法执行它。

它看起来像......

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/

相关文章:

java - 使用 JPA 的 Spring Boot OnetoMany

Mysql查询计算问题?

Mysql RANK 没有给出每个类别的 RANK

php - PHP 中的 SQL 语句错误,但 SQL 中正常

php - 更新重复记录保持1条记录不变的SQL语句

java - 错误: Comparator is abstract; cannot be instantiated

java - 在谷歌地图中搜索位置名称

java - Apache 汤姆霍克 <t :inputFileUpload> tag not working

java - 我在哪里可以找到 Java/Python 中良好的 ajax 支持?

mysql - 根据 where 子句中匹配列的优先级从数据库中选择数据