Не существует такого метода, как Connection()
и getPreparedStatement()
для java.sql.Connection
.
conn.Connection();
stmt = conn.getPreparedStatement("select id_usuario, id_grupo from usuarios_grupos where id_grupo ='" + var + "'");
conn
- явно доморощенная оболочка вокруг кода JDBC.Ваша конкретная проблема, вероятно, вызвана кодом, лежащим в основе метода getPreparedStatement()
.Очевидно, он добавляет ?
к строке SQL, а затем передает его в метод real connection.prepareStatement()
.
Возможно, вы не хотите этого слышать,но ваш подход JDBC полностью нарушен.Этот дизайн указывает, что JDBC Connection
хранится как статическая или переменная экземпляра, которая threadunsafe .
Вам необходимо полностью переписать его, чтобы он сводился к следующему правильному использованию и переменной области видимости:
public List<UsuariousGrupos> select(Integer idGrupo) throws SQLException {
Connection connection = null;
PreparedStatement statement = null;
ResultSet resultSet = null;
List<UsuariousGrupos> usuariousGrupos = new ArrayList<UsariousGrupos>();
try {
connection = database.getConnection();
statement = connection.prepareStatement("select id_usuario, id_grupo from usuarios_grupos where id_grupo = ?");
statement.setInt(1, idGrupo);
resultSet = statement.executeQuery();
while (resultSet.next()) {
usuariousGrupos.add(mapUsuariousGrupos(resultSet));
}
} finally {
if (resultSet != null) try { resultSet.close(); } catch (SQLException ignore) {}
if (statement != null) try { statement.close(); } catch (SQLException ignore) {}
if (connection != null) try { connection.close(); } catch (SQLException ignore) {}
}
return usuariousGrupos;
}
См. Также:
Не связанный с конкретным вопросом, у вас другая проблема.Следующее исключение
javax.el.ELException: /index.xhtml @ 61,99 value = "# {usuariousGruposBean.listOfUserGroups}": Ошибка чтения списка listOfUserGroups для типа br.view.UsuariousGruposBean
означает, что вы выполняете JDBC внутри метода getter вместо (post) конструктора или метода (action) listener.Это также очень плохая идея, потому что геттер может вызываться более одного раза во время ответа рендера.Исправьте это соответствующим образом.
См. Также: