Spring Framework. Урок 26: SQL инъекции. PreparedStatement. JDBC API.

  Рет қаралды 53,548

alishev

alishev

3 жыл бұрын

Скачать PVS-Studio бесплатно: www.viva64.com/spring_pvs
Релиз PVS-Studio 7.10: OWASP, AUTOSAR, SARIF: www.viva64.com/spring_release
ПОЛНЫЙ КУРС ПО SPRING (Hibernate, REST, Boot, Security): swiftbook.org/courses/438
Продвинутая Java - swiftbook.org/courses/415
Мои уроки по Java EE - • Java EE для начинающих
Репозиторий стартового проекта - github.com/NeilAlishev/Spring...
Репозиторий урока - github.com/NeilAlishev/Spring...
Telegram: t.me/alishev_g
Реклама и сотрудничество: alishev.neil@gmail.com

Пікірлер: 103
@alishevN
@alishevN 3 жыл бұрын
ПОЛНЫЙ КУРС ПО SPRING (Hibernate, REST, Boot): swiftbook.org/courses/438 Telegram: t.me/alishev_g Плейлист этого курса: kzfaq.info/sun/PLAma_mKffTOR5o0WNHnY0mTjKxnCgSXrZ
@momo99322
@momo99322 3 жыл бұрын
Вышел видос по Spring - хорошее настроение на весь день обеспечено))
@firstnofate
@firstnofate 3 жыл бұрын
Отличный урок! Наконец-то я увидел пример реальной работы с реальной БД в Спринг. И без всякой «магии» и ОРМ. Давно искал хоть что-то на эту тему, где без общих громких фраз я смогу увидеть как это делается в этом фреймворке на Java. Спасибо! Очень познавательно и без воды!
@TheVendeetta
@TheVendeetta Жыл бұрын
для работы с JDBC Спринг не нужен)
@tatyanayurchenko6840
@tatyanayurchenko6840 Жыл бұрын
Это не spring jdbc, а чистый jdbc. Хотя у спринга с 2018г тоже есть фремфорк spring.jdbc. Хотелось бы найти видео про различия этих двух jdbc
@serge2432
@serge2432 3 жыл бұрын
Самый лучший курс на ютубе. Жду каждый урок больше , чем свой день рождения, это волшебно!
@varchar21
@varchar21 3 жыл бұрын
Спасибо, Наиль, за бест практис! Как всегда информативно, понятно!
@olgaevdokimova8573
@olgaevdokimova8573 3 жыл бұрын
Спасибо за ваш канал . Смотрю все видео по JAVA с удовольствием. И платный продвинутая Java покупала , помогло в некоторых местах. И ваш Git смотрела, благодаря вашим курсам разбираюсь больше. Очень круто подробно объясняете) А еще спасибо за ваш голос, который приятно слушать)))))
@MrNil1982
@MrNil1982 3 жыл бұрын
Хоть я эту тему уже знаю 😎, всеравно низкий тебе поклон за труды и науку! Я сегодня смог сдать зачет по MVC только благодаря твоим видео 👍
@ExcelStore
@ExcelStore 3 жыл бұрын
Очень упрощаете людям жизнь. Спасибо за работу и обучение!
@user-fy6tu1xk9q
@user-fy6tu1xk9q 2 жыл бұрын
Супер, спасибо за понятное и четкое изложение материала!
@H_Atm
@H_Atm 3 жыл бұрын
Это просто комментарий, выражающий тебе благодарность за то, что ты делаешь ;)
@Andrzej3935
@Andrzej3935 2 жыл бұрын
Спасибо огромнейшее, всё доступно, понятно и ясно!
@user-ve4ko4pi7i
@user-ve4ko4pi7i 3 жыл бұрын
Спасибо Вам огромнейшее за ваш труд! Смотрю все ваши видео!
@user-cd7eh5gv1i
@user-cd7eh5gv1i 2 жыл бұрын
Наиль, огромнейшее Вам спасибо. Весь курс это что-то невероятное. Каждый урок - 100% полезной информации, которая доступно изложена без всяких недоговоренностей. Здоровья Вам!
@yuryconnect4785
@yuryconnect4785 2 жыл бұрын
Спасибо, отличный материал!
@baxiskerimov1339
@baxiskerimov1339 2 жыл бұрын
Отличный урок!
@yaroslavnovichkov6736
@yaroslavnovichkov6736 3 жыл бұрын
Спасибо за урок
@KirillMvS
@KirillMvS 7 ай бұрын
Спасибо за видео
@user-xs3tm9hu9x
@user-xs3tm9hu9x 3 жыл бұрын
Всегда радуюсь новым урокам :)
@viktoriakuvhinova3007
@viktoriakuvhinova3007 3 жыл бұрын
Спасибо!!!! Урок как всегда крутой, а главное понятный!!!
@andrei8299
@andrei8299 3 жыл бұрын
Наиль, спасибо за урок! Почему-то думал, что раз нам не нужен цикл в show(), то не нужна строка resultSet.next(); Закомментил ее, а потом не мог понять, почему при открытии пользователя у меня все значения по умолчанию(null, 0). Потом понял причину (более того, об этом было сказано при запуске на сервере, но я не смотрел туда сперва). Вот суть метода next() согласно докам (если не задать курсор, то он будет перед строкой и данные из БД не вытянутся): "Moves the cursor forward one row from its current position. * A ResultSet cursor is initially positioned * before the first row"
@tomozi1
@tomozi1 3 жыл бұрын
Отлинчные видео, спасибо
@mojodont
@mojodont 3 жыл бұрын
Отличный урок! Спасибо!
@silentwitness3363
@silentwitness3363 3 жыл бұрын
Наиль, спасибо за видео!
@nikolay7658
@nikolay7658 3 жыл бұрын
Предельно просто и понятно. Благодарю!
@nurzatbekdunganov863
@nurzatbekdunganov863 3 жыл бұрын
Вах вах вах новое видео. Наиль красабчик
@olegk4589
@olegk4589 3 жыл бұрын
топ контент подьехал!
@fangstraish7623
@fangstraish7623 3 жыл бұрын
Большое спасибо, было очень интересно =)
@FoxChpoks
@FoxChpoks 3 жыл бұрын
БАТЯ В ЗДАНИИ. ТРАДИЦИОННО ЛАЙК НЕ ГЛЯДЯ
@user-vx4xw5ml3e
@user-vx4xw5ml3e 3 жыл бұрын
На твоем канале сначала лайк, потом просмотр, ещё не разу не прогадал)
@KamronBoturkhonov
@KamronBoturkhonov 2 жыл бұрын
CRUD - крут! 👍
@user-jc3vv1vi2i
@user-jc3vv1vi2i 3 жыл бұрын
Круто, спасибо, интересно
@heyliaable
@heyliaable 3 жыл бұрын
Не устаю говорить спасибо :))
@bygan1byganovich454
@bygan1byganovich454 3 жыл бұрын
Бро , желаю удачи в жизни !
@ruzoompartygmail4273
@ruzoompartygmail4273 11 ай бұрын
Первоклассные видео по Спрингу! Спасибо
@silentadvisor
@silentadvisor 3 жыл бұрын
Если кому лень гуглить, то для того чтобы была автоинкрементация по id нужно при создании таблицы базы данных поле id указать как "id serial,", а при добавлении новых элементов вместо числового значения id передавать "default".
@booba6672
@booba6672 3 жыл бұрын
это зря,инкремент занимает оч много ресурсов ,в соотношении ко всему запросу,лучше использовать "select max(id) from person" ,чтобы получать максимальное значение id из базы и инкрементировать непосредственно его
@MrRomanvideo
@MrRomanvideo 2 жыл бұрын
@@booba6672 звучит бредово, наоборот надо максимально всю ответсвтенность за целостность данных перекладывать на БД, а не руками все прописывать в коде.
@booba6672
@booba6672 2 жыл бұрын
@@MrRomanvideo это даже в документации прописано, советую читать
@serebanbl4
@serebanbl4 2 жыл бұрын
У меня получилось так для MySQL: В бд правой кнопкой по id --> Modify Column(UI) --> поставить галочки Autoincrement и Primary Key --> поменял в методе save() строку на "INSERT INTO first_db.person (name, age, email) VALUES (?, ?, ?)" И все заработало! Надеюсь кому-то поможет
@gagn81
@gagn81 Жыл бұрын
@@booba6672 если не трудно, можете привести ссылку на документацию, где дается указание не использовать serial? Спрашиваю потому, что в документации постгреса я этого не видел.
@pertshgalstyan6189
@pertshgalstyan6189 3 жыл бұрын
самый лучший
@mell00FOXES
@mell00FOXES 3 жыл бұрын
Вижу новое видео - ставлю лайк, иду смотреть. Жду новые видео. ☺️
@Nievinor
@Nievinor 3 жыл бұрын
Спасибо)
@zhennik263
@zhennik263 3 жыл бұрын
Когда начинал смотреть курс (Вчера) думал что будет и Spring Sequrity и Hibernate. Последние пара уроков были не особо полезными, давно с этим разобрался. Ну что же, буду копать другие источники)
@alishevN
@alishevN 3 жыл бұрын
это все будет, но нельзя разбираться с Hibernate не разобравшись сначала с более низкоуровневыми подходами.
@alishevN
@alishevN 3 жыл бұрын
в этом и есть суть этого курса, что он полноценно охватывает Spring, а не только популярные ключевые слова.
@tuborg10
@tuborg10 3 жыл бұрын
Наиль на собесе разве будут спрашивать про jdbc и прочие устаревшие технологии ? Мне сказали спрашивают в основном про базовые аннотации из спрингбута
@alishevN
@alishevN 3 жыл бұрын
@@tuborg10 JDBC - не устаревшая технология) Не все можно сделать с помощью Hibernate, иногда надо писать запросы к БД напрямую. Вам сказали неправду)
@tuborg10
@tuborg10 3 жыл бұрын
@@alishevN да, простите, уточнил этот вопрос, действительно в некоторых проектах работают с чистым jdbc. В данном курсе спринга будет реализовано Rest приложение со Spring boot ?)
@iorgankrat1118
@iorgankrat1118 3 жыл бұрын
прекрасно)
@blackmulthumor
@blackmulthumor 3 жыл бұрын
Спасибо
@Spektar1221
@Spektar1221 3 жыл бұрын
топ контент
@MuratFatykhov
@MuratFatykhov 11 ай бұрын
Как хорошо, что валидация у меня так и не завелась 😂 Не нужно комментировать лишний код, чтобы сделать приложение уязвимым к SQL инъекциям👍🏽 P.S: понимаю, что не валидацией защищаются от инъекций. Но всё же осадок с неудавшейся валидацей душу не греет 😅
@Vitek_23
@Vitek_23 Жыл бұрын
Спасибо за урок! Да а в качестве id удобно было бы ++PEOPLE_COUNT подставить.
@kekw5738
@kekw5738 6 ай бұрын
я избавился от ++PEOPLE_COUNT, поставив в таблице полю id тип serial ибо после перезапуска приложения могут быть неуникальные айди
@VladimirPivovar
@VladimirPivovar 3 жыл бұрын
Лайк неглядя
@user-pj7yz2ez9f
@user-pj7yz2ez9f 3 жыл бұрын
Классный курс. Дал большой толчок в обучении. Вопрос: А как все таки генерировать Id автоматически?
@charmink9342
@charmink9342 2 жыл бұрын
Есть специальная аннотация
@mustFLEXboi
@mustFLEXboi 11 ай бұрын
Это конечно все здорово но в коде нет закрытия соединения и стейтментов... Try с ресурсами это наше все
@rubiroit
@rubiroit 2 жыл бұрын
А можете ответить на мои вопросы пожалуйста. 1) С помощью валидации полей на javaScript , можно же избежать такого результата ? 2)Почему Валидация Spring пропускает такое ?
@laptoplaptop9216
@laptoplaptop9216 Жыл бұрын
По-моему, SQL-запрос будет проще собрать через отформатированную строку, так шанс допустить ошибку падает в несколько раз)
@user-lc7gw5py9v
@user-lc7gw5py9v 3 жыл бұрын
Просто красавец! Без всякого лишнего мусора: чётко, ясно, в тему и конкретно! Респектище огромный. П.С.: Не понял только, почему при удалении последней записи - удаляются все, кроме 2-х первых ??
@Gett37
@Gett37 2 жыл бұрын
Удаляются все записи, у которых id такой же, как у той, на которой нажали "удалить".
@bulat9056
@bulat9056 Жыл бұрын
Однако можно же VALUES через запятую указать, когда делаем я INSERT, и тогда тоже окажется один запрос.
@Sa1ZeRChannel
@Sa1ZeRChannel 3 жыл бұрын
Слышал, что jdbc работает слишком медленно, если бд и приложение находятся на разных машинах. Как в таких ситуациях быть ?
@alishevN
@alishevN 3 жыл бұрын
Не слышал такого.
@immortal-spirit-13
@immortal-spirit-13 3 жыл бұрын
наоборот jdbc самый быстрый
@denisrogov7120
@denisrogov7120 Жыл бұрын
А почему не закрываются коннекшены и стэйтманы?
@user-bs4py5ev7q
@user-bs4py5ev7q 3 жыл бұрын
Много раз замечал, что большинство авторов которые выпускают свои видео уроки ведут разработку на Mac устройствах. Это действительно удобней чем на Windows и возникает меньше проблем или это просто как бы модно? И еще вопрос много ли возникает проблем если используешь Mac OS в качестве системы для разработки.
@alishevN
@alishevN 3 жыл бұрын
Mac OS очень удобный для разработки.
@user-bs4py5ev7q
@user-bs4py5ev7q 3 жыл бұрын
@@alishevN спасибо за ответ.
@FoxChpoks
@FoxChpoks 3 жыл бұрын
как пользователь винды долгие годы и пользователь + веб дев последние 2 года на маке, однозначно говорю, что мак удобнее, как для серфа по сети, так и для разной работы. Единственное, что стоит учитывать - для работы лучше сразу рассматривать pro. Моего air не всегда хватает так, как хотелось бы, ОЗУ часто 7гб из 8 свободных))
@rudolfsikorsky7900
@rudolfsikorsky7900 3 жыл бұрын
Просто на Маке есть ретина :) Это с лихвой перекрывает все его недостатки :)
@user-hj3uv5px7m
@user-hj3uv5px7m 3 жыл бұрын
@@alishevN А чем именно? Использую Windows, стоит ли попробовать MacOS?
@stanislavshilo6022
@stanislavshilo6022 3 жыл бұрын
А еще видео будут?
@alishevN
@alishevN 3 жыл бұрын
Да, я записываю полный курс по Spring. Следите за новостями на канале!
@stanislavshilo6022
@stanislavshilo6022 3 жыл бұрын
@@alishevN спасибо, очень доходчиво объясняешь, я такого на русском в KZfaq не видел
@mkrugl
@mkrugl 3 жыл бұрын
Ребята, подскажите пожалуйста, как Наиль целую строку кода удаляет?
@EdwardNorthwind
@EdwardNorthwind 3 жыл бұрын
resources.jetbrains.com/storage/products/intellij-idea/docs/IntelliJIDEA_ReferenceCard.pdf
@EdwardNorthwind
@EdwardNorthwind 3 жыл бұрын
Ctrl+Y
@mkrugl
@mkrugl 3 жыл бұрын
Edward Nordway ух ты! Благодарю 🙏 🤗. Тут даже больше)).
@mkrugl
@mkrugl 3 жыл бұрын
Edward Nordway только хотел про эту команду уточнить).
@EdwardNorthwind
@EdwardNorthwind 3 жыл бұрын
@@mkrugl Да нет за что)
@tatyanayurchenko6840
@tatyanayurchenko6840 Жыл бұрын
preparedStatement индекс не с нуля а с единицы! Почему😂
@alishanvaliani9952
@alishanvaliani9952 3 жыл бұрын
Вернитесь в Андроид пожалуйста)
@SIM31r
@SIM31r 2 жыл бұрын
2021 год и кто-то учит старый Java, не понимают что-ли что учить нужно только Rust, ну в крайнем случае Dart ! ))
@igothigh
@igothigh 2 жыл бұрын
а можно чуточку подробнее?
@blackobemamatters4418
@blackobemamatters4418 Жыл бұрын
2023 год Rust энджоєр все эще не понял, что java - это лучшее, что придумало человечество.
@user-qt6ep9cg1j
@user-qt6ep9cg1j 3 жыл бұрын
Конкуренты ставят дизлайки)
@andreiz751
@andreiz751 3 жыл бұрын
...строкУ...
@user-qy9fu5il8r
@user-qy9fu5il8r 2 жыл бұрын
Проблема и решение, которые возникли у меня при запуске программы под MySQL. При запуске выдавалась ошибка 500, сначала ругалось на отсутствие правильного драйвера. Решение - заменить объявление драйвера на Class.forName("com.mysql.cj.jdbc.Driver"); Однако ошибка 500 не исчезла. Результат долгого гуглинга показал: нужно в воркбенче выполнить строку: set global time_zone = '-3:00'; И тогда все заработало.
@rustamsaydam
@rustamsaydam Жыл бұрын
Кто подскажет, все работает, но ЭМЭЙЛ не показывается, но если зайти в редактор то ка каждому имени присвоен ЭМЭЙЛ, где ошибка
Spring Framework. Урок 27: JdbcTemplate.
23:31
alishev
Рет қаралды 79 М.
SQL Injection - теория и примеры
13:17
Програмысли Влог
Рет қаралды 22 М.
small vs big hoop #tiktok
00:12
Анастасия Тарасова
Рет қаралды 27 МЛН
버블티로 체감되는 요즘 물가
00:16
진영민yeongmin
Рет қаралды 96 МЛН
Khóa ly biệt
01:00
Đào Nguyễn Ánh - Hữu Hưng
Рет қаралды 21 МЛН
Wait for the last one! 👀
00:28
Josh Horton
Рет қаралды 125 МЛН
Что такое CORS и зачем он нужен? По простому
8:15
Мир IT с Антоном Павленко
Рет қаралды 58 М.
Что такое JDBC? Что такое ORM, Hibernate & JPA?
12:59
Sergey Nemchinskiy
Рет қаралды 72 М.
JAVA SPRING JDBC: CRUD БЕЗ ORM
21:19
Джавист
Рет қаралды 6 М.
Транзакции. Теория и практика на Spring
30:10
Михаил Киселев
Рет қаралды 3,8 М.
small vs big hoop #tiktok
00:12
Анастасия Тарасова
Рет қаралды 27 МЛН