0

我正在尝试使用 SELECT 进行选择PreparedStatement,但没有得到任何结果,尽管存在数据。如果我Statement改用,我会得到想要的结果,所以不知道为什么我没有得到任何PreparedStatement.
有任何想法吗?

这是我的代码:

String species = "Snail";
PreparedStatement preparedStatement = con.prepareStatement("Select * from lifeforms where species=?",PreparedStatement.RETURN_GENERATED_KEYS);
preparedStatement.setString(1, species);
preparedStatement.execute();
ResultSet resultSet = preparedStatement.getGeneratedKeys();

另外 - 我试过了

resultSet = preparedStatement.execute();

但这不会编译,说我必须改变resultSet以期望一个布尔值。

对此的任何见解将不胜感激。

抱歉,如果这是显而易见的事情,但我已经阅读了文档,直到我几乎失去知觉,而且我只是在学习 java。

4

2 回答 2

2

啊,所以我终于找到了这个问题的答案——以防其他人被困在同一件事上。

execute()方法没有返回值,尽管编译器建议它期望一个布尔返回值。也许它只是返回 true 或 false 表示成功与否?

executeUpdate()方法返回更新/插入或删除的记录数的 int 值。

要获取查询语句的结果集(例如 Select * from someTable),请使用该 ResultSet rs = preparedStatement.executeQuery()方法。这会将实际查询结果返回到 ResultSet 变量中。

于 2012-11-04T16:30:15.313 回答
2

execute()函数返回一个布尔值,因此如果要执行必须使用的选择语句,您将无法将其放入结果集的对象中executeQuery()

于 2012-12-09T08:21:16.150 回答