ПОЛНЫЙ КУРС ПО SPRING (Hibernate, REST, Boot): swiftbook.org/courses/438 Telegram: t.me/alishev_g Плейлист этого курса: ua-cam.com/play/PLAma_mKffTOR5o0WNHnY0mTjKxnCgSXrZ.html
Ох и повезет же когда-нибудь человеку, который придет на все готовенькое, и просмотрит разом все ПОНЯТНЫЕ видосы про spring. Продолжай снимать эти ролики, ты сделал мое обучение короче в разы! Спасибо огромнейшее
Спасибо большое за видео!!!Вы не представляете как вы своими видео помогаете,если до этого я ни разу не писал комментарий,всегда говорил себе очень хорошо учит но не так уж сложно было.Но этот видос все таки пробудил поделится комментарием!Единственное и самое лучшее видео по обьяснению этой темы.Вы очень хорошо преподаете,так просто и гениально как говорится)).Спасибо,продолжайте нас радовать своими видеороликами!Огромная благодарность за вашу работу!
Хочу сказать вам огромное спасибо за ваши видео, по сути благодаря им я устроился джуном, дали тестовое задание, и как раз удачно попал на ваши видео, жаль что про бд на тот момент не было видоса и пришлось искать инфу самому, в тот момент я еще больше убедился в том что ваши видосы очень крутые, вот просто огромное спасибо!
Кто делает используя СУБД MySQL: 1) зависимость называется - MySQL Connector/J 2) нужно прописать строку Class.forName("com.mysql.cj.jdbc.Driver"); вместо той что в уроке
со строкой Class.forName("com.mysql.cj.jdbc.Driver") вместо 500 ошибки начало выдавать 404, а вот с Class.forName("com.mysql.jdbc.Driver") все запустилось. Всем спасибо
Наиль, огромное спасибо тебе! У тебя талант преподавать. С первой зарплаты выкуплю все твои курсы на юдеми. А насчет PostgreSQL хочу поделиться своим опытом запуска. После установки не хотел запускаться pgadmin. Долго грузился, потом выдавал Fatal Error "The pgadmin 4 server could not be contacted". Перелопатил много форумов, испробовал много вариантов (установка других версий, чистка фолдеров и т.д.). Как оказалось проблема была в том, что имя компьютера содержало русские буквы. Достаточно изменить имя компьютера, перезагрузить комп и все заработает.
Кто делает в бесплатной Идее: 1) чтобы работать с БД - установите плагин Database Navigator (интерфейс очень похож) 2) этот плагин предполагает осуществление периодических коммитов, поэтому перед тем, как стартануть Томкат - обязательно коммитимся
Скоро уже близится новый год, и в связи с этим хотелось бы попросить Дедушку Мороза(alishev) сделать всем взрослым детишкам подарок от которого они будут радоваться как малые дети. А потом с веселым настроем счастливо лопать мандарины и кидая шкурки в монитор говорить "А че так можно было" :) смотреть новые выпуски сериала Spring Framework.
Если возникнет проблема, что программа видит базу данных, но при этом не видит ни одной таблицы внутри неё (при условии правильного написания названия таблицы) - можно сделать следующее: File -> Settings -> Languages & Frameworks -> SQL Dialects, в появившемся окне, в первой строке выбираем PostgreSql, вторую можно оставить none, далее жмём на плюсик и выбираем папку с проектом (её по сути не надо искать, сразу должна появиться при нажатии на +) - мне помогло. P.S Наилю большое спасибо за уроки, ничего лучше на UA-cam на настоящий момент нету)
Это как оказалось вызывает ошибку http erorr 500, выкидывая nullpointerexception, как мне кажется программа всё ещё не могла использовать таблицы с базы данных, хотя красным цветом "person" не выделяла.. Способ 2: Скачиваете MySql и запускаете тот же код, всё сразу начинает работать без никаких проблем, а как наберетесь сил можно снова бросаться в бой с PostgreSql и пытаться его приручить, ибо во многих вакансиях требуют именно его..
Чтобы увидеть схему надо нажать на квадратик рядом с названием БД, на нем циферки, указывающие на то, сколько галочек там можно поставить, чтобы выбрать чего-то. Вот туда заглядываем и ставим галочку на дефолтной схеме, после чего на квадратике будет написано 1 из 3, например как у меня. И тогда можно дальше видео смотреть.
Очередное Спасиибо за материал :) пара комментов 1. У постгреса есть отличный serial для автоинкрементных полей. 2. После подключения постгреса в моей конфигурации видимо что-то скрутило, и сервер стал как будто игнорировать контроллеры, на всё подряд кидая 404. Битый час провозился, создал тестовый контроллер с простейшей хелло, с перезагрузкой IDE и всего ПК, пока в итоге не остановил веб-сервер и не сделал clean/build. Ошибка была в WebModule[/...] ServletContext.log():No Spring WebApplicationInitializer types detected on classpath Вдруг кому тоже пригодится.
Урок, конечно, хороший. Но стоит сказать, что вкладка database в IDE доступна только в платной UltimateEdition. Для начинающего пользователя лучше показать вариант как всё работает без этой вкладки, т.к. без неё джуны не понимают, как прикрутить PostgreSQL к проекту в IDE.
Вообще, довольно наглядно можно было бы продемонстрировать мощь абстракции создать interface DatabaseService, который будут реализовывать три класса - FakeDbService (static list); PureJdbcService (текущий пример), и JdbcTemplateService (Spring JDBC). В класс PersonDAO внедрить DatabaseService c аннотацией @Qualifier. Для замены статичного листа на jdbc достаточно заменить value у Qualifiera-a c "fakeDbService" на "pureJdbcService" Таким образом, замена сервиса-источника данных прошла бы "более безболезненно" и без масштабного рефакторинга.
1. Разве надо обрабатывать исключения в DAO? Не лучше ли пробросить их в модель и там формировать соответствующий view если, например, отвалилась БД? 2. Метод executeUpdate() таки возвращает значение - кол-во добавленных строк и это тоже можно передавать в модель.
Интересно было, особенно завис на теме инжекций...Подскажите, почему когда апдейтим (в т.ч. в этом видео) ранее добавленные люди опускаются в конец списка ? просто хочется понять, id'шник же тот же самый остаётся
Тот самый момент, когда пришлось разобраться досконально в теории, научиться пользоваться дебаггером в Спринге методом тыка и наконец отловить ошибку, вместо age ade, одна буква.
Строка ResultSet resultSet = statement.executeQuery(SQL); при обновлении страницы выдаёт ошибку: org.postgresql.util.PSQLException: ОШИБКА: отношение "person" не существует Подключение к базе данных есть, отношение создано, вручную командой select * from person выдаёт полный список внесённых значений. Работаю в комьюнити версии через плагин Database Navigator. РЕШЕНИЕ ПРОБЛЕМЫ: в консоли базы данных нужно нажать "commit changes" и всё заработает. Надеюсь кому-нибудь поможет.
В 2022 не работает. Прилетает - HTTP Status 500 - Internal Server Error Request processing failed; nested exception is java.lang.NullPointerException: Cannot invoke "java.sql.Connection.createStatement()" because "ru.alishev.springcourse.dao.PersonDAO.connection" is null Как лечить пока не понял. UPD: работает но только с зависимостями указанной в видео версии.
Выскакивала такая же ошибка, причина была в URL = "jdbc:postgresql://localhost:5432//testdb", перед названием базы убрал один слеш и заработало, "jdbc:postgresql://localhost:5432/testdb"
А разве связь с базой в Spring не должен работать через services layer? Я видел что создаётся DAO интерфейсы потом реализация. Потом создают services. Services расширяют реализацию дао и создают Connection и работают с базой непосредственно. Service -> DAO -> DataBase Спасибо за отличный контент!
Наиль, а есть в планах создать платный курс по спрингу. На данный момент мал мала системно на русском курс сделал только трегулов, ниша вроде свободна.
Здравствуйте, хочу оставить несколько замечаний: - Используйте try-with-resorse блок, автор забыл упомянуть что connection нужно закрывать - Логики оборачивания в try можно вынести в отдельный метод;
Очень хорошо разбита информация на уроки. В каждый урок вложено не слишком много нового, но достаточно чтобы сделать следующий шаг по улучшению приложения.
Благодарю за курс. Как я понял, тут не учитываются, что необходимо использовать интерфейсы, для реализации GRASP паттернов (low coupling...). Будет ли Вами поднята тема GOF -GRASP patterns?
Привет. Кто-нибудь сталкивался с проблемой запуска postgresql: Is the server running on host "localhost" (127.0.0.1) and accepting TCP/IP connections on port 5432? На этом порту никто не висит, делал команду netstat -aon | find "5432" ничего не выдаёт. Но сейчас у меня запущен сервер Tomcat локальный - localhost с портом 8080. Правильно ли я понимаю, что несмотря на один адрес у БД и веб сервера (localhost) они не должны мешать друг другу так как используют разные порты 5432 и 8080 соответственно? Или я ошибаюсь? Подскажите пожалуйста, как решить проблему?
Незнаю что это было, но мне помогло следующее: набрал в командной строке services.msc нашёл в сервисах свой постгрес "postgresql-x64-13 - PostgreSQL Server 13" нажал start Всё заработало, и БД и томкат, никаких конфликтов.
Я смотрю кто-то использует DAO-абревиатуры, кто-то DTO для описания и использования классов. В чём же разница между этими классами и в каких случаях используют DAO-классы, а в каких DTO?
DTO - это паттерн, также используют для обработки данных в шаблонах, например, я использовал для валидации полей password и passwordConfirmation, а через DAO (точнее через сервис с repo) сохраняю значение поля password в БД.
Добрый день, в базе данных много таблиц и для работы с ними нужно для каждой создавать свой PersonDAO (Tabl1DAO, Tabl2DAO,..) и также как и Person (Tabl1, Tabl2,..) ?
Может, у кого-то была такая же проблема - при открытии html страницы через Tomcat у меня вместо кириллицы появляются знаки вопроса, а в заголовке HTTP Content-Type указан charset=ISO-8859-1. Добавление атрибута в файле server.xml не приносит результата. Как же можно изменить кодировку на utf-8?
String SQL = "INSERT INTO Person VALUES(" + 1 + ",'" + person.getName() + "'," + person.getAge() + ",'" + person.getEmail() + "')"; ОШИБКА! В базе данных уже есть запись с id=1 Попробовал в качестве ДЗ переписать остальные методы самостоятельно, и наткнулся на выдачу двух записей по методу show где id=1
Была у кого-то такая ошибка Error during artifact deployment. See server log for details ? Не работает , томкат 9 весь код скопировал , не работает , уже 4 дня сижу
Для тех кто смотрит в 2023. Если возникает ошибка 500 "Отношения не существует"(relation does not exist): Уточняйте название таблицы, а именно вместо просто его названия дайте полный путь "имя_базы_данных.имя_таблицы". Например в данном случае запрос должен выглядеть как не просто "select * from person", a "select * from first_db.person". P.S. Заглавные буквы или нет SQL и Spring плевать, проверено.
Здравствуйте, огромное спасибо вашим урокам, очень сильно помогают в изучении Spring. Я хотел бы задать следующий вопрос: При попытке выполнить SQL запрос из кода, как показано в видео, возникает ошибка "Отношения не существует". Посмотрев в сети возможные варианты данной ошибки, наткнулся только на те, которые связаны с заглавными буквами в названии таблицы, к которой происходит обращении, но название моей таблицы корректное (current_load). При этом в консоли данный запрос срабатывает и выдаёт правильный результат. Можете ли вы что-то подсказать на этот счёт?
Решил данную проблему, нужно положить jar файл postgresql в папку lib в папке самого apache tomcat В итоге я смог запустить все на apache tomcat 10 java ставил 17 версию при создании проекта build tools: Gradle Groovy spring6 springboot 3.0.1(вроде такая версия)
смотрите какая лажа происходит с postgres, если intelij idea 2018 того, она уже не будет корректно работать с новым 13 постгрисом, постгрис всегда был ужасным, пусть он и быстрый, у него чудовищная обратная совместимость. И главное об этих вещах просто так не понять, что там не работает то. день запросто мождет уйти, лучше мускул юзать.
для начала и правда лучше MySQL, порог вхождения меньше, но потом лучше на PostgreSQL переходить, т.к. в России в основном на нём сидят (что, кстати противоречит мировой статистике, где у последнего всего 5% рынка, а у Оракл (очень похоже на мускул) почти 50%)
Подскажите пожалуйста, как остановить работу БД? Пробовал делать Disconnect from server через pgAdmin и закрывать сам pgAdmin, но БД продолжала работать (можно запустить приложение и менять данные, смотреть содержимое БД в консоли PostgreSQL в IntelliJIDEA). Потом узнал что pgAdmin - это просто утилита для администрирования БД. Через неё вроде как нельзя остановить её сервер. Пробовал кучу команд для терминала, все они возвращали command not found. Пришёл к выводу, при установке через EDB, работать с БД через терминал нельзя (пробовал добавить PATH по инструкции с офф сайта PostgreSQL - не помогло). Через встроенный SQL Shell (psql) (появляющийся после установки в меню приложений macOS) тоже ничего из найденных команд не работает. Перепробовал уже вроде всё, но сервер продолжает крутиться, знатно поджирая заряд аккумулятора мака. Пожалуйста, помогите 🙏🏽
Не знаю как там с PostgreSQL и маком, но в MySql БД работает как сервис (В фоновом режиме). Поэтому можете попробовать найти сервис и отключить его в диспетчере задач (Имя Сервиса по идее содержит sql например "postgresql").
С mysql выдает ошибку 500. Cannot invoke "java.sql.Connection.createStatement()" because "ru.alishev.springcourse.dao.PersonDAO.connection" is null Почему-то не устанавливается соединение. Class.forName("com.mysql.jdbc.Driver"); написано так
Я такой коммент не нашел по этому вот подарок будущим программистам. String SQL = "INSERT INTO Person VALUES(" + 1 + ",'" + person.getName() + "'," + person.getAge() + ",'" + person.getEmail() + "')";
ПОЛНЫЙ КУРС ПО SPRING (Hibernate, REST, Boot): swiftbook.org/courses/438
Telegram: t.me/alishev_g
Плейлист этого курса: ua-cam.com/play/PLAma_mKffTOR5o0WNHnY0mTjKxnCgSXrZ.html
Оказалось, что я уже в сообществе 👍
@@AndreyDeveloper хаха) все записываю. Как только будет готово выпущу :)
Ох и повезет же когда-нибудь человеку, который придет на все готовенькое, и просмотрит разом все ПОНЯТНЫЕ видосы про spring. Продолжай снимать эти ролики, ты сделал мое обучение короче в разы! Спасибо огромнейшее
Я - этот человек. Спасибо огромное за уроки!
С другой стороны когда он только придёт постигать науку, вы уже возможно будете работающими спецами)
Я тоже тот самый человек, который очень благодарен автору))
Да, самый понятный курс, который ответил на многие вопросы)
Дай Бог здоровья тебе и всех благ за труды твои, добрый человек!
можешьподсказать, что за пороль он вводит на 17:04? когда запустил установщик
@@alexandrkomar4741 вероятно postgres
@@damirmv1993затупил
Спасибо большое за видео!!!Вы не представляете как вы своими видео помогаете,если до этого я ни разу не писал комментарий,всегда говорил себе очень хорошо учит но не так уж сложно было.Но этот видос все таки пробудил поделится комментарием!Единственное и самое лучшее видео по обьяснению этой темы.Вы очень хорошо преподаете,так просто и гениально как говорится)).Спасибо,продолжайте нас радовать своими видеороликами!Огромная благодарность за вашу работу!
Спасибо)
Хочу сказать вам огромное спасибо за ваши видео, по сути благодаря им я устроился джуном, дали тестовое задание, и как раз удачно попал на ваши видео, жаль что про бд на тот момент не было видоса и пришлось искать инфу самому, в тот момент я еще больше убедился в том что ваши видосы очень крутые, вот просто огромное спасибо!
Поздравляю!
Просмотрел весь курс, спасибо за то что уделяете на это время. Поставил колокольчик в ожидании следующих выпусков 🤗
Кто делает используя СУБД MySQL:
1) зависимость называется - MySQL Connector/J
2) нужно прописать строку Class.forName("com.mysql.cj.jdbc.Driver"); вместо той что в уроке
Спасибо, добрый человек
@@rikki2338 рад был помочь :)
указал такой путь com.mysql.jdbc.Driver и заработало с вашим не пошло.
со строкой Class.forName("com.mysql.cj.jdbc.Driver") вместо 500 ошибки начало выдавать 404, а вот с Class.forName("com.mysql.jdbc.Driver") все запустилось. Всем спасибо
Спасибо добрый, умный человек )
40 минут урок, и никакой воды - это космос. Лучший преподаватель рунета!
Спасибо огромное за такие понятные и нужные уроки!! Вы - мой спаситель))
Ура, новое видео по спрингу. Спасибо большое, как раз сейчас активно изучаю Spring Data и ваше видео как нельза к стати! =)
Как долго я ждал этот видос, урааааа
Огромная Вам благодарность за такие качественные уроки по спрингу!!!
P.S. ResultSet и Connection в конце надо закрывать :)
Спасибо огромное за ваши труды! Лучшее, что есть в рунете по этой теме.
Ауф ауф ауф. Круто, классно, легко доходчиво. Спасибо за ваш труд!
Долгожданное видео про БД) Ещё хотелось бы про сервисы в вашем исполнение послушать
Красавчик. Круто очень. Пожалуйста делай видосики. Очень жду!!!!
Вау!!! Как раз эта тема на курсах!!! Спасибище!
Ура! Новое видео и так в тему. Большое спасибо! Четко и понятно👍
Чувствую, что совсем обленилась😅 слишком легко и просто с вами, все разжевано так как надо)
Еще не смотрел, но уверен что все супер!!!
Да! Еще одно видео! Отлично!
Наиль, огромное спасибо тебе! У тебя талант преподавать. С первой зарплаты выкуплю все твои курсы на юдеми.
А насчет PostgreSQL хочу поделиться своим опытом запуска. После установки не хотел запускаться pgadmin. Долго грузился, потом выдавал Fatal Error "The pgadmin 4 server could not be contacted". Перелопатил много форумов, испробовал много вариантов (установка других версий, чистка фолдеров и т.д.). Как оказалось проблема была в том, что имя компьютера содержало русские буквы. Достаточно изменить имя компьютера, перезагрузить комп и все заработает.
у меня не сработало)
не запускает pgAdmin долго очень грузит
@@КоротаевСергей-л5н решили проблему?
@@suleimen да) скачал другую версию
@@КоротаевСергей-л5н а я качал и 13 и 9 ничего не помогло. Скачал mysql )
Кто делает в бесплатной Идее:
1) чтобы работать с БД - установите плагин Database Navigator (интерфейс очень похож)
2) этот плагин предполагает осуществление периодических коммитов, поэтому перед тем, как стартануть Томкат - обязательно коммитимся
после создания таблички или добавления данных через консоль ide нужно делать коммит, зеленая кнопочка там же, без этого данные не добавятся в базу
спасибо, всегда жду видео из этой тематики
Спасибо, мы ждали)
Скоро уже близится новый год, и в связи с этим хотелось бы попросить Дедушку Мороза(alishev) сделать всем взрослым детишкам подарок от которого они будут радоваться как малые дети. А потом с веселым настроем счастливо лопать мандарины и кидая шкурки в монитор говорить "А че так можно было" :) смотреть новые выпуски сериала Spring Framework.
постараюсь)
Большое человеческое спасибо за серию по Spring. Ты просто супер!
Если возникнет проблема, что программа видит базу данных, но при этом не видит ни одной таблицы внутри неё (при условии правильного написания названия таблицы) - можно сделать следующее: File -> Settings -> Languages & Frameworks -> SQL Dialects, в появившемся окне, в первой строке выбираем PostgreSql, вторую можно оставить none, далее жмём на плюсик и выбираем папку с проектом (её по сути не надо искать, сразу должна появиться при нажатии на +) - мне помогло.
P.S Наилю большое спасибо за уроки, ничего лучше на UA-cam на настоящий момент нету)
Это как оказалось вызывает ошибку http erorr 500, выкидывая nullpointerexception, как мне кажется программа всё ещё не могла использовать таблицы с базы данных, хотя красным цветом "person" не выделяла..
Способ 2: Скачиваете MySql и запускаете тот же код, всё сразу начинает работать без никаких проблем, а как наберетесь сил можно снова бросаться в бой с PostgreSql и пытаться его приручить, ибо во многих вакансиях требуют именно его..
Вот спасибо тебе!!!)
Эх, жаль нельзя несколько лайков сразу бахнуть, спасибо за уроки, чувак!!))
Ты сделаешь из меня хорошего Java разработчика, если не прекратишь снимать уроки! 😁
Благодарю!
Чтобы увидеть схему надо нажать на квадратик рядом с названием БД, на нем циферки, указывающие на то, сколько галочек там можно поставить, чтобы выбрать чего-то. Вот туда заглядываем и ставим галочку на дефолтной схеме, после чего на квадратике будет написано 1 из 3, например как у меня. И тогда можно дальше видео смотреть.
Превосходные уроки
Очередное Спасиибо за материал :)
пара комментов
1. У постгреса есть отличный serial для автоинкрементных полей.
2. После подключения постгреса в моей конфигурации видимо что-то скрутило, и сервер стал как будто игнорировать контроллеры, на всё подряд кидая 404. Битый час провозился, создал тестовый контроллер с простейшей хелло, с перезагрузкой IDE и всего ПК, пока в итоге не остановил веб-сервер и не сделал clean/build. Ошибка была в WebModule[/...] ServletContext.log():No Spring WebApplicationInitializer types detected on classpath
Вдруг кому тоже пригодится.
Спасибо за твой труд)
Урок, конечно, хороший. Но стоит сказать, что вкладка database в IDE доступна только в платной UltimateEdition. Для начинающего пользователя лучше показать вариант как всё работает без этой вкладки, т.к. без неё джуны не понимают, как прикрутить PostgreSQL к проекту в IDE.
Ну так ультимейт версией можнопользоватся месяц бесплатно
@@Tsukinosutsu а можно просто плагин из магазина установить в Идее
Спасибо за видео
Вообще, довольно наглядно можно было бы продемонстрировать мощь абстракции
создать interface DatabaseService, который будут реализовывать три класса -
FakeDbService (static list);
PureJdbcService (текущий пример),
и JdbcTemplateService (Spring JDBC).
В класс PersonDAO внедрить DatabaseService c аннотацией @Qualifier.
Для замены статичного листа на jdbc достаточно заменить value у Qualifiera-a c "fakeDbService" на "pureJdbcService"
Таким образом, замена сервиса-источника данных прошла бы "более безболезненно" и без масштабного рефакторинга.
Меня на учебном проекте сразу кинули на hibernate, spring Boot и swagger. Теперь понимаю, насколько это удобнее оказалось
в конце списка ожидал "и на деньги"
1. Разве надо обрабатывать исключения в DAO? Не лучше ли пробросить их в модель и там формировать соответствующий view если, например, отвалилась БД?
2. Метод executeUpdate() таки возвращает значение - кол-во добавленных строк и это тоже можно передавать в модель.
Круто! Спасибо
копирование строки Ctrl + D гораздо удобнее, чем выделять строку)
Я так предполагаю, дальше будет Hibernate, Spring Data JPA?)
ты лучший
Спасибо большое! Как всегда на высоте!)
Когда планируется следующий урок ?
получилось) внимательно проверяйте имя и пароль)
Круто!!!!
Интересно было, особенно завис на теме инжекций...Подскажите, почему когда апдейтим (в т.ч. в этом видео) ранее добавленные люди опускаются в конец списка ? просто хочется понять, id'шник же тот же самый остаётся
Тот самый момент, когда пришлось разобраться досконально в теории, научиться пользоваться дебаггером в Спринге методом тыка и наконец отловить ошибку, вместо age ade, одна буква.
Строка
ResultSet resultSet = statement.executeQuery(SQL);
при обновлении страницы выдаёт ошибку:
org.postgresql.util.PSQLException: ОШИБКА: отношение "person" не существует
Подключение к базе данных есть, отношение создано, вручную командой select * from person выдаёт полный список внесённых значений. Работаю в комьюнити версии через плагин Database Navigator.
РЕШЕНИЕ ПРОБЛЕМЫ: в консоли базы данных нужно нажать "commit changes" и всё заработает. Надеюсь кому-нибудь поможет.
Спасибо что не поленился расписать ! помогло
В 2022 не работает.
Прилетает - HTTP Status 500 - Internal Server Error
Request processing failed; nested exception is java.lang.NullPointerException: Cannot invoke "java.sql.Connection.createStatement()" because "ru.alishev.springcourse.dao.PersonDAO.connection" is null
Как лечить пока не понял.
UPD: работает но только с зависимостями указанной в видео версии.
ну как получилось? у меня такая же проблема(
аааааа.... это у меня было имя пользователя postgres, а я в idea написал postgresql)
Не вылечили?
Выскакивала такая же ошибка, причина была в URL = "jdbc:postgresql://localhost:5432//testdb", перед названием базы убрал один слеш и заработало, "jdbc:postgresql://localhost:5432/testdb"
ЛАЙК НЕ ГЛЯДЯ
НА удивление что все запустилось!
А разве связь с базой в Spring не должен работать через services layer?
Я видел что создаётся DAO интерфейсы потом реализация. Потом создают services. Services расширяют реализацию дао и создают Connection и работают с базой непосредственно.
Service -> DAO -> DataBase
Спасибо за отличный контент!
да, должен. Просто я не хочу все сразу давать в одном уроке. Дойдем и до сервисов.
@@alishevN Спасибо за инормажию. Очень жду твоих уроков.
Наиль, а есть в планах создать платный курс по спрингу. На данный момент мал мала системно на русском курс сделал только трегулов, ниша вроде свободна.
да, есть такой план
Спасибо
красаучек
HTTP Status 500 - Internal Server Error zdrastvuyte u menya dayot error chto delac chtob rabotal?
Если делаете через MySql, то замените на Class.forName("com.mysql.jdbc.Driver")
@@CyxapbBLR Почему-то нынче не помогает. Может, есть мысли, что делать.
нашли ответ
@@rcet это был вопрос или утверждение?
@@francet777это был вопрос, но я уже нашел решение.
Спасибо
Здравствуйте, хочу оставить несколько замечаний:
- Используйте try-with-resorse блок, автор забыл упомянуть что connection нужно закрывать
- Логики оборачивания в try можно вынести в отдельный метод;
он AutoCloseable
@@kandidat8134 да, поэтому НЕ нужен блок FINALLY, но это не означает что try не нужен ...
👍👍👍
ctrl + D автоматом дублирует строку на которой стоит курсор в этой IDE в виндоус , чтобы не делать ctrl+C ctrl+V
Очень хорошо разбита информация на уроки. В каждый урок вложено не слишком много нового, но достаточно чтобы сделать следующий шаг по улучшению приложения.
после 13 постгрис поставил 9, и всё заработало, так что имейте ввиду кто будете ставить, идея 2018 с последними postgres не работает
awwww nice brain practice
Благодарю за курс. Как я понял, тут не учитываются, что необходимо использовать интерфейсы, для реализации GRASP паттернов (low coupling...). Будет ли Вами поднята тема GOF -GRASP patterns?
Привет. Кто-нибудь сталкивался с проблемой запуска postgresql: Is the server running on host "localhost" (127.0.0.1) and accepting TCP/IP connections on port 5432?
На этом порту никто не висит, делал команду netstat -aon | find "5432" ничего не выдаёт. Но сейчас у меня запущен сервер Tomcat локальный - localhost с портом 8080. Правильно ли я понимаю, что несмотря на один адрес у БД и веб сервера (localhost) они не должны мешать друг другу так как используют разные порты 5432 и 8080 соответственно? Или я ошибаюсь?
Подскажите пожалуйста, как решить проблему?
Незнаю что это было, но мне помогло следующее:
набрал в командной строке services.msc
нашёл в сервисах свой постгрес "postgresql-x64-13 - PostgreSQL Server 13"
нажал start
Всё заработало, и БД и томкат, никаких конфликтов.
Жалко нет кнопки авто-лайк для выбранных людей!
CTRL + D для дублирования строки в Intellij idea, чтобы не использовать CTRL C, CTRL+V
Я смотрю кто-то использует DAO-абревиатуры, кто-то DTO для описания и использования классов. В чём же разница между этими классами и в каких случаях используют DAO-классы, а в каких DTO?
DTO - Data Transfer Object. Он нужен совсем для другого. Для отправки сущностей по сети.
DTO - это паттерн, также используют для обработки данных в шаблонах, например, я использовал для валидации полей password и passwordConfirmation, а через DAO (точнее через сервис с repo) сохраняю значение поля password в БД.
@@vitalijuskolinko9011 тоже верно
А кто будет закрывать все ресурсы? Connection, Statement и ResultSet? А так для новичков отличная подача материала!
Добрый день, в базе данных много таблиц и для работы с ними нужно для каждой создавать свой PersonDAO (Tabl1DAO, Tabl2DAO,..)
и также как и Person (Tabl1, Tabl2,..) ?
Есть ли разница в методах подключения драйвера jdbc? Например если не писать в pom.xml connector, а скачать файл .jar?
нет. без разницы как подключать зависимость, но с maven удобней.
Может, у кого-то была такая же проблема - при открытии html страницы через Tomcat у меня вместо кириллицы появляются знаки вопроса, а в заголовке HTTP Content-Type указан charset=ISO-8859-1. Добавление атрибута в файле server.xml не приносит результата. Как же можно изменить кодировку на utf-8?
ответы были где ранее под видосами
когда создаю таблицу в консоли, нельзя надо после varchar(100) писать количество символов, иначе кидает ошибку.
Оооо да)
String SQL = "INSERT INTO Person VALUES(" + 1 + ",'" + person.getName() +
"'," + person.getAge() + ",'" + person.getEmail() + "')";
ОШИБКА! В базе данных уже есть запись с id=1
Попробовал в качестве ДЗ переписать остальные методы самостоятельно, и наткнулся на выдачу двух записей по методу show где id=1
Была у кого-то такая ошибка Error during artifact deployment. See server log for details ? Не работает , томкат 9 весь код скопировал , не работает , уже 4 дня сижу
Давайка через Hibernate лучше) А лучшее вообще JPA юзать
Для тех кто смотрит в 2023.
Если возникает ошибка 500 "Отношения не существует"(relation does not exist):
Уточняйте название таблицы, а именно вместо просто его названия дайте полный путь "имя_базы_данных.имя_таблицы".
Например в данном случае запрос должен выглядеть как не просто "select * from person", a "select * from first_db.person".
P.S. Заглавные буквы или нет SQL и Spring плевать, проверено.
у меня PostgreSQL JDBC Driver » 42.3.1 (актуальный на данный момент) не заработал с кодом, когда вставил версию с репозитория автора - заработало.
а почему бы не подключиться к базе данных через application.properties ?
Здравствуйте, огромное спасибо вашим урокам, очень сильно помогают в изучении Spring. Я хотел бы задать следующий вопрос:
При попытке выполнить SQL запрос из кода, как показано в видео, возникает ошибка "Отношения не существует". Посмотрев в сети возможные варианты данной ошибки, наткнулся только на те, которые связаны с заглавными буквами в названии таблицы, к которой происходит обращении, но название моей таблицы корректное (current_load). При этом в консоли данный запрос срабатывает и выдаёт правильный результат. Можете ли вы что-то подсказать на этот счёт?
не видит таблицу. проверьте название
@@alishevN Спасибо за оперативный ответ, смог найти проблему. С нетерпением жду следующих уроков.
@@maxn3249 Случаем не помните, в чём проблема была? Тоже застрял на ней.. Базу данных видит, но ни одну таблицу внутри неё не видит
Спасибо! Крутые видео, когда будет цикл видео по hibernate?
через месяц-два примерно. следите за каналом)
@@alishevN слежу, хотелось бы чаще видеть новый материал на канале. По security планируете, что-то готовить?
@@КопнинЮра да, будет конечно
А почему в дао не использовали интерфейс? с самого начала?
чтобы не усложнять повествование
```
CREATE TABLE person(
id BIGINT,
name VARCHAR(256),
age INT,
email VARCHAR(256)
);
```
А зачем ставить postgre? Сейчас все через докер подключат
подключайте как вам удобно. это не важно
intellij idea не коннектится к постргис никак вообще
Начало 5:05
У меня например Intelij Idea, захотела подключиться только через SSH, вторая вкладка, может кому то поможет.
Как ты это сделал? Я не могу через ssh тоже
No suitable driver found for jdbc:postgresql
У кого то было такое же?
Решил данную проблему, нужно положить jar файл postgresql в папку lib в папке самого apache tomcat
В итоге я смог запустить все на apache tomcat 10
java ставил 17 версию при создании проекта
build tools: Gradle Groovy
spring6
springboot 3.0.1(вроде такая версия)
А почему все игнорируют такую вещь как JDO? Как будто её вообще не существует.
Для тех кому лень:
String SQL = "INSERT INTO Person VALUES(" + 1 + ",'" + person.getName() +
"'," + person.getAge() + ",'" + person.getEmail() + "')";
смотрите какая лажа происходит с postgres, если intelij idea 2018 того, она уже не будет корректно работать с новым 13 постгрисом, постгрис всегда был ужасным, пусть он и быстрый, у него чудовищная обратная совместимость. И главное об этих вещах просто так не понять, что там не работает то. день запросто мождет уйти, лучше мускул юзать.
для начала и правда лучше MySQL, порог вхождения меньше, но потом лучше на PostgreSQL переходить, т.к. в России в основном на нём сидят (что, кстати противоречит мировой статистике, где у последнего всего 5% рынка, а у Оракл (очень похоже на мускул) почти 50%)
DriverManager малец устарел уже )
Подскажите пожалуйста, как остановить работу БД? Пробовал делать Disconnect from server через pgAdmin и закрывать сам pgAdmin, но БД продолжала работать (можно запустить приложение и менять данные, смотреть содержимое БД в консоли PostgreSQL в IntelliJIDEA).
Потом узнал что pgAdmin - это просто утилита для администрирования БД. Через неё вроде как нельзя остановить её сервер.
Пробовал кучу команд для терминала, все они возвращали command not found. Пришёл к выводу, при установке через EDB, работать с БД через терминал нельзя (пробовал добавить PATH по инструкции с офф сайта PostgreSQL - не помогло).
Через встроенный SQL Shell (psql) (появляющийся после установки в меню приложений macOS) тоже ничего из найденных команд не работает.
Перепробовал уже вроде всё, но сервер продолжает крутиться, знатно поджирая заряд аккумулятора мака. Пожалуйста, помогите 🙏🏽
Не знаю как там с PostgreSQL и маком, но в MySql БД работает как сервис (В фоновом режиме). Поэтому можете попробовать найти сервис и отключить его в диспетчере задач (Имя Сервиса по идее содержит sql например "postgresql").
이건 또 어느나라냐? 중동쪽인가 ㅋㅋㅋ
이것은 러시아입니다
푸틴 군주와 함께하는 군주제
С mysql выдает ошибку 500. Cannot invoke "java.sql.Connection.createStatement()" because "ru.alishev.springcourse.dao.PersonDAO.connection" is null
Почему-то не устанавливается соединение.
Class.forName("com.mysql.jdbc.Driver"); написано так
Переподключил dependency. Спасло ситуацию.
Я такой коммент не нашел по этому вот подарок будущим программистам.
String SQL = "INSERT INTO Person VALUES(" + 1 + ",'" + person.getName() + "',"
+ person.getAge() + ",'" + person.getEmail() + "')";
блин на этом месте про*ебался много раз,спасибо!))