【发布时间】:2016-12-26 15:56:11
【问题描述】:
您好,所有代码都可以在没有结果集的情况下工作,但我需要包含它才能将其添加到结果集中。有什么办法可以用一种方法做到这一点吗? 此代码用于更新我的 java 程序中的用户详细信息。我使用结果集来获取用户详细信息。
public User editUserDetails(int userID ,String email, String password, String fName, String lName, String bio, String image) {
boolean found = false;
Connection c = DBHelperClass.getConnection();
String query = "UPDATE user SET email= ? , password= ?,fName= ?,lName= ?,bio= ?,image=? WHERE userID= ?";
if (c != null) {
try {
PreparedStatement inserter = c.prepareStatement(query);
inserter.setString(1, email);
inserter.setString(2, password);
inserter.setString(3, fName);
inserter.setString(4, lName);
inserter.setString(5, bio);
inserter.setString(6, image);
inserter.setInt(7, userID);
System.out.println("Update user: " + query);
ResultSet resultSet = inserter.executeUpdate();
inserter.executeUpdate();
inserter.close();
while (resultSet.next()) {
this.setUserID(resultSet.getInt("userID"));
this.email = resultSet.getString("email");
this.setPassword(resultSet.getString("password"));
this.type=resultSet.getString("type");
this.fName=resultSet.getString("fName");
this.lName=resultSet.getString("lName");
found = true;
}
} catch (SQLException ex) {
Logger.getLogger(User.class.getName()).log(Level.SEVERE, null, ex);
}
}
return this;
}
错误在线:
ResultSet resultSet = inserter.executeUpdate();
错误是:int 无法转换为 ResultSet
【问题讨论】:
-
你在哪一行遇到问题
-
这一行 ResultSet resultSet = inserter.executeUpdate();
-
其实是什么问题,我看不懂。能说清楚一点吗?
-
我已经编辑了问题
-
executeUpdate()不返回ResultSet。如果要从数据库中检索数据,则需要使用executeQuery()执行的 SELECT 语句,它确实返回一个结果集。但是我不明白您为什么要在更新方法中检索ResultSet。
标签: java sql prepared-statement