Уроки Java для профессионалов | #12 - Авторизация в приложении

  Рет қаралды 52,705

Гоша Дударь

Гоша Дударь

Күн бұрын

Чтобы авторизовать пользователя необходимо выбрать данные из БД и проверить есть ли такой пользователь. В этом уроке мы научимся выбирать данные и авторизовывать пользователя, если таковой имеется.
1) Урок на itProger: itproger.com/c...
✔ Основной сайт: itproger.com/
✔ Конструктор сайтов: crafty.site/
✔ -------------
Группа Вк - prog_life
Группа FaceBook - goo.gl/XW0aaP
Instagram: / gosha_dudar
Telegram: t.me/itProger_o...
Twitter - / goshadudar
Уроки от #GoshaDudar 👨🏼‍💻
Все уроки по хештегу #GoshaJavaProfi

Пікірлер: 69
@ВалентинГлобалов
@ВалентинГлобалов 5 жыл бұрын
9:36 Нажмите на лампочку и Surroynd width try/catch нету, прописал в ручную. Спасибо, работает!
@ashtunder
@ashtunder 4 жыл бұрын
Дельные видео. Уважаю
@LobanovSpace
@LobanovSpace 6 жыл бұрын
Спасибо за курс. Лайк.
@viacheslav8590
@viacheslav8590 6 жыл бұрын
В DatabaseHandler пришлось изменить синтаксис на String select = "select * from users where username =? AND password =?";
@ЕлизаветаСтанкевич-о2ы
@ЕлизаветаСтанкевич-о2ы 5 жыл бұрын
спасибо тебе, добрый человек
@Mi-ray
@Mi-ray 4 жыл бұрын
у меня была ошибка в том что я пробелы в SQL запросе не поставил
@x10vip10
@x10vip10 4 жыл бұрын
вот почему уже второй урок подряд у него какая-то хрень в коде, у него всё работает, а у меня всё тоже самое - нет, и спасает только комментарий?
@imbfblack4322
@imbfblack4322 4 жыл бұрын
@@x10vip10 потому что версии mysql обновляются и к разным версиям свой синтаксис. Автор ни в чем не виноват. Разве что только в том, что не указал версию его MySQL и не показал поэтапную установку.
@imbfblack4322
@imbfblack4322 4 жыл бұрын
@@x10vip10 читай ошибки которые тебе выдает компилятор и не ругайся на деятельность автора. Он вообще красавчик что хоть что-то объясняет. Так бы советовал брать книгу и изучать через книжки, потому что там будет более рабочий подход. Ты будешь понимать что за что отвечает. Тут ты только будешь знать поверхностно. Либо ищи видео курсы по конкретной тематике типа базы данных mysql , кибернейт и прочее .
@zet888853
@zet888853 2 жыл бұрын
Спасибо за конструктор, надоело делать везде запросы
@metabrix
@metabrix 4 жыл бұрын
Понимаю, что курс старый, но вместо подсчёта строк с нужным логином и паролем можно просто: if (rs.next()) System.out.println("Success!"); else // анимация
@syoritohatsuki
@syoritohatsuki 4 жыл бұрын
Молодец 😁👍 за меня написал. И даже если бы это была админка и нужен был вывод нескольких учёток, то там явно лучше был бы foreach
@sorochinsky
@sorochinsky 6 жыл бұрын
Гоша, спасибо за твои старания! Ты лучший! Продолжай в том же духе)
@АлександрГомон-к2н
@АлександрГомон-к2н 6 жыл бұрын
Отлично, то что нужно. Спасибо!
@NireTheBest
@NireTheBest 6 жыл бұрын
Спасибо за твой труд Гоша, интересно рассказываешь. Единственный минус это описание видео. Тема эта далеко не для профессионалов, а для новичков или максимум для слабо продвинутых :)
@Vn12283
@Vn12283 6 жыл бұрын
выдает ошибку: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''cody' AND password='111'' at line 1 класс DatabaseHandler package sample; import java.sql.PreparedStatement; import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; import java.sql.ResultSet; public class DatabaseHandler extends sample.Configs { Connection dbConnection; public Connection getDBConnection() throws ClassNotFoundException, SQLException { String connectionString="jdbc:mysql://" +dbHost+":"+dbPort+"/"+dbName; Class.forName("com.mysql.jdbc.Driver"); dbConnection=DriverManager.getConnection(connectionString, dbUser,dbPass); return dbConnection; } public void signUpUser (sample.User user) { String insert ="INSERT INTO "+sample.Const.USER_TABLE+ "(" + sample.Const.USERS_FIRSTNAME+","+sample.Const.USERS_LASTNAME+"," +sample.Const.USERS_USERNAME+"," +sample.Const.USERS_PASSWORD+"," +sample.Const.USERS_LOCATION+"," +sample.Const.USERS_GENDER+ ")"+ "VALUES(?,?,?,?,?,?)"; try { PreparedStatement prST= getDBConnection().prepareStatement(insert); prST.setString(1,user.getFirstName()); prST.setString(2,user.getLastName()); prST.setString(3, user.getUserName()); prST.setString(4,user.getPassword()); prST.setString(5,user.getLocation()); prST.setString(6,user.getGender()); prST.executeUpdate(); } catch (SQLException e) { e.printStackTrace(); } catch (ClassNotFoundException e) { e.printStackTrace(); } } public ResultSet getUser(sample.User user){ ResultSet resSet= null; String select ="SELECT * FROM "+sample.Const.USER_TABLE+ "WHERE" + sample.Const.USERS_USERNAME+"= ? AND " +sample.Const.USERS_PASSWORD+"=?"; try { PreparedStatement prST= getDBConnection().prepareStatement(select); prST.setString(1,user.getUserName()); prST.setString(2,user.getPassword()); resSet=prST.executeQuery(); } catch (SQLException e) { e.printStackTrace(); } catch (ClassNotFoundException e) { e.printStackTrace(); } return resSet; } } класс Contoller package sample; import java.io.IOException; import java.net.URL; import java.sql.ResultSet; import java.sql.SQLException; import java.util.ResourceBundle; import javafx.fxml.FXML; import javafx.fxml.FXMLLoader; import javafx.scene.Parent; import javafx.scene.Scene; import javafx.scene.control.Button; import javafx.scene.control.PasswordField; import javafx.scene.control.TextField; import javafx.stage.Stage; import sample.DatabaseHandler; public class Controller { @FXML private ResourceBundle resources; @FXML private URL location; @FXML private TextField login; @FXML private PasswordField pass; @FXML private Button logButton; @FXML private Button signButton; @FXML void initialize() { logButton.setOnAction( e->{ String loginText= login.getText().trim(); String loginPassword= pass.getText().trim(); if (!loginText.equals("")&&!loginPassword.equals("")){ loginUser(loginText,loginPassword); } else { System.out.println("field is empty"); } } ); signButton.setOnAction( e-> { signButton.getScene().getWindow().hide(); FXMLLoader loader= new FXMLLoader(); loader.setLocation(getClass().getResource("/sample/SIgnUp.fxml")); try { loader.load(); } catch (IOException e1) { e1.printStackTrace(); } Parent root= loader.getRoot(); Stage stage = new Stage(); stage.setScene(new Scene(root)); stage.showAndWait(); } ); } private void loginUser(String loginText, String loginPassword) { DatabaseHandler dbHandler= new DatabaseHandler(); sample.User user = new sample.User(); user.setUserName(loginText); user.setPassword(loginPassword); ResultSet result= dbHandler.getUser(user); int counter = 0; try {while (result.next()){ counter++; } } catch (SQLException e) { e.printStackTrace(); } if (counter>=1){ System.out.println("Success"); } } }
@syoritohatsuki
@syoritohatsuki 4 жыл бұрын
Пробелы твои враги
@komerst7618
@komerst7618 6 жыл бұрын
Гоша красава
@ЧеловексТопором
@ЧеловексТопором 6 жыл бұрын
Просто оставлю коммент, чтобы хоть немного продвинуть видео.
@LobanovSpace
@LobanovSpace 6 жыл бұрын
Я тоже)
@syoritohatsuki
@syoritohatsuki 4 жыл бұрын
Ой зря
@Andrzej3935
@Andrzej3935 2 жыл бұрын
спасибо!
@TheEmeric
@TheEmeric 6 жыл бұрын
Parameter index out of range (6 > number of parameters, which is 2).
@michaelivanov2620
@michaelivanov2620 4 жыл бұрын
+
@metabrix
@metabrix 4 жыл бұрын
У тебя параметров в запросе 2.
@rom4ikgamer783
@rom4ikgamer783 6 жыл бұрын
Гоша, а какие твои давние уроки по python нужно усвоить, чтобы знать БАЗОВЫЙ СИНТАКСИС python?
@ЕгорМардеросов
@ЕгорМардеросов 6 жыл бұрын
Будет ли подобный курс для C++?
@ПавелШевчук-ь6ъ
@ПавелШевчук-ь6ъ 6 жыл бұрын
Подскажите пожалуйста мне надо получить значения из textField прописал String b = InputWord.getText().trim(); и выдает ошибку когда программа доходит до этого момента. Что делать?
@skorpopio689
@skorpopio689 6 жыл бұрын
Скинь ссылки на твои сделаные и выложеные игры
@last-dinosaur
@last-dinosaur 6 жыл бұрын
Не совсем по теме, но хочу задать вопросик. Ну, а т.к. это последнее на данный момент видео, то сделаю это тут..) Мечтаю связать свою жизнь с геймдевом. Вероятнее всего, в области дизайна(особенно привлекает левел-дизайн). Но не понимаю, на какую сферу идти учиться, чтобы было хоть какое-то официальное свидетельство о том, что я подхожу этой профессии? Учиться в чём-то вроде Scream School - денег попросту не хватит. Пойти в любой техникум ( например МИФИ; р/т им. Попова - самые доступные в моей ситуации), а там уже, попутно с учёбой на специальность "Программирование в компьютерных системах" или "web-дизайн", просто быть самоучкой или влезть куда-то вроде Geek Brains, что можно тоже прировнять к некому само-учению? Не будет ли таким образом серьёзных проблем с трудоустройством? ПАМАГИТЕ в общем :c
@ПавелШевчук-ь6ъ
@ПавелШевчук-ь6ъ 6 жыл бұрын
Гоша не отвечает на коменты, если вообще на них смотрит
@KOVU89
@KOVU89 Жыл бұрын
а как сделать приложение чтобы заходить на сайт по логину и паролю ?
@KOVU89
@KOVU89 Жыл бұрын
чтобы после ввода логина и пароля открывался сайт
@ЯрославВащенко-д8й
@ЯрославВащенко-д8й 5 жыл бұрын
Прошу помощи, не могу найти решение уже второй день. java.sql.SQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'FROMusersWHERElogin='gsdg'password='adgsdf'' at line 1. Понятно что проблема в синтаксисе исходя из перевода, но выполнено всё точь в точь как в видео
@cpaka01
@cpaka01 5 жыл бұрын
пробелы ставь FROM users WHERE login='gsdg' password='adgsdf
@coldat1997
@coldat1997 6 жыл бұрын
Парень я знаю ты стараешься, но сейчас нет времени этим заниматься) потом когда нить посмотрю твои годные видео)
@karaedd
@karaedd 3 жыл бұрын
посмотрел?
@Bely
@Bely 6 жыл бұрын
Какой стиль шрифта Вы используете?
@rom4ikgamer783
@rom4ikgamer783 6 жыл бұрын
Александр Белый Английский)
@Bely
@Bely 6 жыл бұрын
здесь была бы уместна шутка про Comic Sans, а не про язык
@channelMy
@channelMy 2 жыл бұрын
не работает почему-то, если вводить русские имена!
@redcape8419
@redcape8419 6 жыл бұрын
Здравствуйте, у меня проблема) При попытке авторизоваться всегда выскакивает текст что логин и пароль пустые Хотя я туда набираю пользователя который есть в базе данных Вот код loginUser private void loginUser(String loginText, String loginPassword) { DatabaseHandler dbHandler = new DatabaseHandler(); User user = new User(); user.setLogin(loginText); user.setPassword(loginPassword); ResultSet result = dbHandler.getUser(user); int counter = 0; try { while (result.next()) { counter++; } }catch (SQLException e){ e.printStackTrace(); } System.out.println(counter); if(counter >= 1){ System.out.println("Success!"); } } Вот код getUser public ResultSet getUser(User user){ ResultSet resSet = null; String select = "SELECT * FROM " + Const.USER_TABLE + " WHERE " + Const.USERS_LOGIN + "=? AND " + Const.USERS_PASSWORD + "=?"; try { PreparedStatement prSt = getDbConnection().prepareStatement(select); prSt.setString(1,user.getLogin()); prSt.setString(2,user.getPassword()); resSet = prSt.executeQuery(); } catch (SQLException e) { e.printStackTrace(); } catch (ClassNotFoundException e) { e.printStackTrace(); } return resSet; } } Помагите плиииз
@max_tarantul
@max_tarantul 6 жыл бұрын
проверь эту часть кода может забыл знак ! if(!loginText.equals("") && !loginPassword.equals("")) { try { loginUser(loginText, loginPassword); } catch (SQLException e) { e.printStackTrace(); } } else { System.out.println("Login and Password is empty!"); }
@redcape8419
@redcape8419 6 жыл бұрын
max aspire Спасибо Но я уже нашел ошибку, она была именно в этой части)) Условие было неправильное
@Tom-rv4zw
@Tom-rv4zw 4 жыл бұрын
когда я нажимаю на кнопку войти выходит вот такая ошибка Exception in thread "JavaFX Application Thread" java.lang.NullPointerException at sample.Controllers.Controller.loginUser(Controller.java:128) at sample.Controllers.Controller.lambda$initialize$2(Controller.java:91) уже 2 дня пытаюсь исправить, помогите
@vladimird946
@vladimird946 3 жыл бұрын
у меня такая же проблема, ты нашел решение?)
@Tom-rv4zw
@Tom-rv4zw 3 жыл бұрын
@@vladimird946 нет и я уже перешёл на js
@sharbatadilbek4679
@sharbatadilbek4679 3 жыл бұрын
@@vladimird946 еще не нашли ошибку?
@dimagharmash2744
@dimagharmash2744 2 жыл бұрын
вероятно у вас result со значением null@@sharbatadilbek4679
@МагестЛоил
@МагестЛоил 2 жыл бұрын
Я исправил. В классе DatabaseHandller в методе getUser rSt.executeUpdate(); когда я копировал код из метода singUpUser из блока try, то там в конце написано prSt.executeUpdate(); В методе getUser должно быть resSet = prSt.executeQuery();
@musikbass674
@musikbass674 6 жыл бұрын
пожалуйста скинь ссылку на первые уроки
@saymyname5165
@saymyname5165 5 жыл бұрын
щас бы вручную импортировать либы
@Nelsons1992
@Nelsons1992 4 жыл бұрын
как создать пользователя User без параметров когда у него в конструкторе их 6?...
@Nelsons1992
@Nelsons1992 4 жыл бұрын
все, досмотрел, косяк исправлен)
@komerst7618
@komerst7618 6 жыл бұрын
Гоша, с первой зарплаты джависта переведу тебе денег на дошик
@vatterilsl1228
@vatterilsl1228 4 жыл бұрын
Устроился на джаву?
@mirnijalexey2765
@mirnijalexey2765 4 жыл бұрын
@@vatterilsl1228 ага, у меня дворником работает))
@neverminesu
@neverminesu 3 жыл бұрын
@@mirnijalexey2765 Устроился на джаву?
@mirnijalexey2765
@mirnijalexey2765 3 жыл бұрын
@@neverminesu пока нет, на след неделе сразу 3 собеседования намечаются
@neverminesu
@neverminesu 3 жыл бұрын
@@mirnijalexey2765 а, я думал ты дворником работаешь
@musikbass674
@musikbass674 6 жыл бұрын
с меня лайк
@azino
@azino 6 жыл бұрын
Зачем ты сам прописываешь импорт? Если это делается автоматически
@rom4ikgamer783
@rom4ikgamer783 6 жыл бұрын
Илья Хечнев когда ты прописываешься в импорт, а потом он выполняется автоматический
@azino
@azino 6 жыл бұрын
ROMA SMILE TV я имею ввиду, что можно ничего не прописывать!
@wosajmine9291
@wosajmine9291 2 жыл бұрын
Господи для кого придумали hibernate
Я сделала самое маленькое в мире мороженое!
00:43
Кушать Хочу
Рет қаралды 4,9 МЛН
НИКИТА ПОДСТАВИЛ ДЖОНИ 😡
01:00
HOOOTDOGS
Рет қаралды 2,7 МЛН
Что такое Java и как ее выучить?
19:55
Sergey Nemchinskiy
Рет қаралды 146 М.
НЕЙРОСЕТЬ своими руками за 10 минут на Python
11:10
Хауди Хо™ - Просто о мире IT!
Рет қаралды 1 МЛН
Авторизация - Spring Security в деталях #java #spring #springsecurity #abac #rbac #authorization
1:22:58