- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
private boolean userInOneRegistrationNode() throws DfException {
String uname = OrganizationStaffStructureHelper.getCurrentUserName();
int i = 0;
IDfCollection NodesCol = DQLHelper.getCollection(DQL_GET_REGISTRATOR_DIV, new String[]{uname});
while (NodesCol.next()) {
if (!(NodesCol == null)) {
String group_name = NodesCol.getString(GROUP_NAME);
i = i + 1;
}
}
if (i == 1) {
return true;
}
return false;
}
Заменяется 2мя строками один - select count(*), вторая - полученный результат Integer.ValueOf(...).
Lure Of Chaos 05.03.2013 01:01 # −1
santa_microbe 05.03.2013 13:01 # +1
Жабу не знаю , но по моему строчки с 14 по 17 можно заменить на return (i==1);
Aksndr 18.03.2013 08:37 # 0
но даже без этого видно следующее:
1. Почему бы переменную i не инкрементировать в виде i++
2. поддержу santa_microbe
3. Почему коллекция не закрыта?
Чуть вглубь:
Зачем в запросе возвращать содержимое какого то поля, если все равно считается только их кол-во?
Почему бы просто в запрос не вставить count(<имя_поля>)? А результат пропарсить в Integer и вернуть сравнение с единицей?