0
我正在使用Prepared Statement進行我的SELECT
查詢。之後,我試圖從ResultSet
得到我的信息,並將其放入ArrayList
。 我正在把它變成Result Set循環,但我得到一個錯誤java.sql.SQLException: Operation not allowed after ResultSet closed
。 我試圖用rs.close()
關閉它,但它給了我同樣的錯誤。這是我的方法。請幫助!SQLException:ResultSet關閉後不允許操作。 Java.Spring MVC
@SuppressWarnings("unchecked")
@Override
public List<Users> listUsersSort(Integer weight, String gender, String place, Integer ageTo, String currentUser) {
System.out.println(weight + gender + place + ageTo + currentUser);
Connection dbConnection = null;
PreparedStatement preparedStatement = null;
boolean weightFlag = false;
boolean genderFlag = false;
boolean placeFlag = false;
boolean ageToFlag = false;
int iterator = 0;
List<Users> usersList = new ArrayList<Users>();
String selectSQL = "select*from users where users.enabled = ?";
if (weight < 40 == false) {
String weightParam = " AND users.weight <= ?";
selectSQL = selectSQL.concat(weightParam);
weightFlag = true;
System.out.println(selectSQL);
}
if (gender.isEmpty() == false) {
String genderParam = " AND users.gender LIKE ?";
selectSQL = selectSQL.concat(genderParam);
genderFlag = true;
}
if (place.isEmpty() == false) {
String placeParam = " AND users.place LIKE ?";
selectSQL = selectSQL.concat(placeParam);
placeFlag = true;
// query = query.concat(placeParam);
}
if (ageTo < 19 == false) {
String age = " AND users.age <= ?";
selectSQL = selectSQL.concat(age);
ageToFlag = true;
}
String withoutUser = " AND users.username NOT LIKE ?";
selectSQL = selectSQL.concat(withoutUser);
System.out.println("FINAL QUERY IS: " + selectSQL);
Connection con = getConnection();
try {
preparedStatement = con.prepareStatement(selectSQL);
preparedStatement.setBoolean(++iterator, true);
if (weightFlag)
preparedStatement.setInt(++iterator, weight);
if (genderFlag)
preparedStatement.setString(++iterator, gender);
if (placeFlag)
preparedStatement.setString(++iterator, place);
if (ageToFlag)
preparedStatement.setInt(++iterator, ageTo);
preparedStatement.setString(++iterator, currentUser);
} catch (SQLException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
ResultSet rs = null;
try {
rs = preparedStatement.executeQuery();
con.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {
Users userrs = new Users();
while (rs.next()) {
userrs.setUsername(rs.getString("username"));
userrs.setName(rs.getString("name"));
userrs.setSurname(rs.getString("surname"));
userrs.setGender(rs.getString("gender"));
userrs.setWeight(rs.getInt("weight"));
userrs.setHeight(rs.getInt("height"));
userrs.setSport(rs.getString("sport"));
userrs.setSport(rs.getString("place"));
usersList.add(userrs);
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return usersList;
}
嗯,嘗試與 - 資源?最後沒有必要。 – Majora320
你假設java7。我沒有看到任何跡象表明這是事實...... – Shloim
I ** do **假設他正在使用Java 7,特別是因爲6正式在生命的盡頭。 – Majora320