Нашли или выдавили из себя код, который нельзя назвать нормальным,
на который без улыбки не взглянешь?
Не торопитесь его удалять или рефакторить, — запостите его на
говнокод.ру, посмеёмся вместе!
Недавно начал писать информационную систему на курсовую. Java.
Парню стоит побольше читать.
Да и if(!rs.next()) return false; - это прикол.
Вернул бы лучше сам результат rs.next(); чем ахинею городить.
Вопрос: чем хуже использование String.equals?
здесь важно только кол-во строчек, 0 или 1 (теоретически может быть и больше).
если уж обсуждать, то данный метод вообще бесполезен(избыточен). Я бы возвращал сразу инфу о юзере или нулл если не найден.
Ну, мы подразумеваем, что сущность users описана более-менее правильно, а, следовательно, предусмотрено, что имя пользователя уникально.
Поэтому-то если бы он возвращал результат rs.next(), то:
true - результирующий набор не пуст (значит есть совпадение пары логин-пароль);
false - результирующий набор пуст (либо пользователя с данным именем нет вообще, либо пароли не совпадают).
С исключениями тут конечно же тоже байдень. Компилятор не пустит. Ибо в заголовке функции указано SQLException и все тело функции заключено в try..catch.
Мистика NetBeans вчера не пускал такой код, скачал последнюю версию - пускает, в Eclipse все ок. IntelliJIDEA тоже пускает.
А че бинс раньше не пускал чтоли?
Йобаная магия.
К смертельно больному 108-летнему еврею приходит его 104-летний друг:
-Ну, Аврам, как здоровье?
-Плохо, Изя, очень плохо. Думаю, придётся пристать перед Б-гом.
-Слушай, если он тебя спросит "Что там Изя", "Как там Изя", ты меня не видел, не слышал, и ничего про меня не знаешь!
Ну, вы правы.
Оно именно так и относится к ресурсам.
Стоимость лицензии:
99$ - студентам и преподавателям
199$(249) - для одиноких-одиночек
499$(599) - компаниям и организациям
Млять, ну нахера же в методе SQLException обрабатывать?! Пусть внешний код об этом заботится. Здесь явно больше sql говнокод, а не java, хотя человек как-то умудрился placeholder сюда запихнуть.
Ну, как я понимаю "throws SQLException" итак вынудит человека заключать вызов данного метода в конструкцию "тру"...."о, бля, дырка" или опять же указывать throws SQLException в вызывающем методе.
Так что внешний код будет об этом минимум знать 😀
Обрабатывать надо хотя бы потому, что вызывающий метод не обязан ничего знать о реализации ComparePassword. Из него бросать SQLException - вообще глупость. Если уж очень нужно исключение, то это должно быть исключение бизнес-уровня (у которого при большом желании можно указать cause). А сам метод может в базу лезть, может в LDAP, ActiveDirectory, да хоть из файла пароль читать. Вызывающему коду на это плевать с высокой колокольни. Он должен знать "правильно/неправильно/не удалось проверить" - true/false/CheckFailedException.
Успешность выполнения данного метода больше нужна внешнему модулю, логично ведь?! Обработка исключений лучше воспринимается извне, это как закон, а там уже можно его "обернуть" в другой runtime-fail, яснее будет.
Парню стоит побольше читать.
Да и if(!rs.next()) return false; - это прикол.
Вернул бы лучше сам результат rs.next(); чем ахинею городить.
Вопрос: чем хуже использование String.equals?
если уж обсуждать, то данный метод вообще бесполезен(избыточен). Я бы возвращал сразу инфу о юзере или нулл если не найден.
не может, иначе это будет не проверка подлинности, а народные гуляния
Поэтому-то если бы он возвращал результат rs.next(), то:
true - результирующий набор не пуст (значит есть совпадение пары логин-пароль);
false - результирующий набор пуст (либо пользователя с данным именем нет вообще, либо пароли не совпадают).
же
но есть такая опасность, что если говно в коде, то и в бд тоже может быть не лучше
Чип-Чип-Чип и Дейл!
Там 4 раза ЧИП. =(
перевели в другую каталажку
А че бинс раньше не пускал чтоли?
Йобаная магия.
Да и НетБинс известен такими штуками, не в первый раз уже.
чо-чо? интелли-жидея?
-Ну, Аврам, как здоровье?
-Плохо, Изя, очень плохо. Думаю, придётся пристать перед Б-гом.
-Слушай, если он тебя спросит "Что там Изя", "Как там Изя", ты меня не видел, не слышал, и ничего про меня не знаешь!
Оно именно так и относится к ресурсам.
Стоимость лицензии:
99$ - студентам и преподавателям
199$(249) - для одиноких-одиночек
499$(599) - компаниям и организациям
Так что внешний код будет об этом минимум знать 😀