Spring Boot JPA (Hibernate): добавляем базу данных в веб приложение на Java (простой сайт)

Поделиться
HTML-код
  • Опубликовано: 4 апр 2018
  • Java Spring Web Application (MVC): Добавляем базу данных (БД) в Spring приложение, написанное на Java. БД нужно в любом приложении, подразумевающем хоть какое-то взаимодействие с пользователем. В случае, если весь контрент приложения генерируется пользователями, как в нашем клоне Твиттера, то и БД в приложении играет одну из важнейших ролей.
    Поддержать проект:
    ➡ Стать спонсором ruclips.net/user/letscodedrujoin
    ➡ Patreon / letscodedru
    ➡ Яндекс.Деньги money.yandex.ru/to/4100145167...
    ➡ PayPal paypal.me/letscodedru
    ➡ Qiwi qiwi.me/letscode
    Ссылка на git репозиторий из видео:
    github.com/drucoder/sweater/t...
    Для начала нам необходимо найти нужный гайд на сайте Spring:
    spring.io/guides/gs/accessing...
    Следующим шагом мы устанавливаем необходимые зависимости. В руководстве, которое мы используем, обозначена СУБД MySQL, которую можно использовать, как быстрый старт (её необходимо установить отдельно). Я же предпочитаю Postgres (его тоже надо устанавливать отдельно), ввиду большего соответсвия моим требованиям. На начальном этапе вы можете использовать любую удобную для вас БД.
    Зависимость для Postgres:
    gist.github.com/drucoder/5401...
    Настройки БД для Postgres:
    gist.github.com/drucoder/1742...
    Далее по руководству создаем доменный объект (объект, который будем хранить в БД), репозиторий, для взаимодействия с БД и вносим изменения в контроллер и шаблон страницы.
    Руководство по mustache:
    mustache.github.io/mustache.5....
    Руководство по JPA репозиториям:
    docs.spring.io/spring-data/jp...
    ➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖
    ➡ Твиттер: / letscodedru
    ➡ Чат в Discord: / discord
    ➡ Группа Вконтакте: letscodedru
    ➡ Канал в Telegram: t.me/letsCode_dru
    ➡ Чат в Telegram: t.me/joinchat/FeiP9xEhqHajfqh...
    ➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖
    Ссылка на плейлист:
    • SDKMan: установка Java...
    Ссылка на канал: / @letscodedru
    Ссылка на Яндекс.Дзен: zen.yandex.ru/media/id/5ac209...
  • НаукаНаука

Комментарии • 742

  • @for_whom_the_bell_tolls
    @for_whom_the_bell_tolls 4 года назад +83

    Отличный урок, спасибо. От себя хочу добавить (если правильно разобрался):
    1. После первого запуска приложения в application.properties нужно поменять spring.jpa.hibernate.ddl-auto=create, на update, иначе с каждым запуском база будет создаваться заново и мы теряем все данные (делал в MySQL)
    2. В main.mustache в отправке формы на добавление лучше прописать action="/", иначе падает сценарий:
    используем фильтр - попадаем на /filter, потом пытаемся добавить мессагу и остаемся на /filter, который не знает как обрабатывать параметры text и tag

    • @igorvoittamaton7173
      @igorvoittamaton7173 4 года назад +2

      Огромное спасибо за информацию! Потратил не менее часа на гугление решения вопроса (в моём случае - с H2).

    • @pvtitov
      @pvtitov 3 года назад

      по п.2 как я понял дело в той же ошибке на которую я натолкнулся по описанию выше - Required String parameter 'filter' is not present
      Там где form сабмита для Добавить сделал но это все равно приводит к ошибке
      помогло именно сделать

    • @TheCximus
      @TheCximus 3 года назад +2

      @@pvtitov п2 за 2 года чутка поменялся) так что мануалы для проблемных мест надо искать)

    • @user-gx2eq8is1x
      @user-gx2eq8is1x 3 года назад +2

      В PostgreSQL ничего не удаляется при перезапуске

    • @LighterST
      @LighterST 2 года назад

      @@user-gx2eq8is1x У меня удаляется. Если стоит create, а не update

  • @user-ux2lw7oh5z
    @user-ux2lw7oh5z 5 лет назад +15

    Еще раз большое спасибо! на этот Spring ум начал хоть как-то собираться только после Ваших видео. Пойду спать не полным дураком)))

  • @alexbrekhin3333
    @alexbrekhin3333 6 лет назад +10

    Очень крутые видео, давно к Spring'у подбираюсь, но другие уроки давали отрывочные знания(каждый урок- новая задача), а тут все постепенно. Спасибо большое.

  • @yaroslavneilo1820
    @yaroslavneilo1820 4 года назад +2

    Спасибо за ваши уроки! Все объясняете! Класс..
    Бывает смотришь уроки, а в них автор ничего толком не объясняет, непонятно зачем такие видео нужны.
    А ваши уроки - супер!

  • @user-ih7yr2sj5y
    @user-ih7yr2sj5y 3 года назад +5

    Крутой подход, спасибо автору. Следовал видео и получилось сделать
    крутой проект, который любопытно "докручивать" самому. Советы автора
    помогают не утонуть в деталях и не потерять мотивацию. Спасибо ребятам в
    комментах - если вы напоролись на ошибку, решения находил здесь же.
    Успехов!

  • @romanmotovilov129
    @romanmotovilov129 4 года назад

    После того как сам сделал все руками, понимаешь как все просто и легко. Спасибо за чудесный урок!!!

  • @vladimiregorov4788
    @vladimiregorov4788 2 года назад +3

    Очень крутой подход: попробовали что-то простое, поняли, переходим к сложному. Спасибо за крутые видосики :D

  • @DarthVader-nx4if
    @DarthVader-nx4if 4 года назад +2

    Видос очень крутой. Все просто и доступно. Спасибо, что не забываешь объяснять каждую строчку)

  • @evgeniygul1131
    @evgeniygul1131 6 лет назад +2

    Благодарю, уроки супер и очень нужные! От души!

  • @brytok1989
    @brytok1989 6 лет назад +18

    Спасибо за видео, отличный формат. Мне нравится. Жду еще.

  • @Kopatych69
    @Kopatych69 4 года назад

    Круто, и самое главное все понятно. Спасибо за уроки. Жму крепко руку.Все работает дже с Oracle БД.

  • @user-qn7wv5yw8x
    @user-qn7wv5yw8x 4 года назад

    Очень наглядно. Методика подачи материала очень крутая!

  • @theswayfarer5798
    @theswayfarer5798 4 года назад +2

    Спасибо! Шикарный материал.

  • @D.P._
    @D.P._ 5 лет назад +2

    Спасибо! Отличный и лаконичный материал!

  • @user-se1mk6xq3g
    @user-se1mk6xq3g 4 года назад

    Большое спасибо за видео. Реально можно применять на практике.

  • @user-rn6bf7wb8j
    @user-rn6bf7wb8j 2 года назад

    Благодарю за видеоуроки, все четко и понятно !!!!!!

  • @adiletkobogonov6248
    @adiletkobogonov6248 3 года назад

    Коротко, ясно и понятно особенно для начинающих Spring Boot!

  • @ainurabekbolsunova946
    @ainurabekbolsunova946 3 года назад

    Отличные и лучшие уроки. Спасибо.

  • @user-bj3jk6tp3h
    @user-bj3jk6tp3h 5 лет назад +7

    Просто лучший, без слов!

  • @devdev8158
    @devdev8158 4 года назад +2

    Очень понятым языком все объясняется! Среди шквала информации по спрингу, не знал с чего начать. Ваши видео все расставляют по местам. Спасибо

    • @Good_nick_name
      @Good_nick_name 4 года назад

      ничего тут не понятно объясняется, даже не показал папку с репозиториями, не понятно как вообще методы реализовывать там получения данных с БД, что тут понятного то хоть

  • @mariknv8667
    @mariknv8667 4 года назад +2

    Очень круто) Я только начал изучать джаву, но уже очень интересно.

  • @alenka_mak
    @alenka_mak 4 года назад +2

    Поначалу я тоже получил "This application has no explicit mapping for /error, so you are seeing this as a fallback". Боролся так: скачал с гитхаба исходники к видео - они полностью рабочие. Сравнивал свои файлы в файлами с гитхаба. В моем случае причиной были лишние депенденсы в pom.xml - первоначально я пытался прикрутить БД Oracle. Так что, все преодолимо, автору респект и уважуха )))))))))))

  • @user-ug4me4hg1b
    @user-ug4me4hg1b 4 года назад

    Очень круто и очень понятно. Спасибо вам огромное

  • @mikhail8895
    @mikhail8895 4 года назад

    Видео отличные, то что нужно. Большое спасибо!

  • @nailsaggitarius4212
    @nailsaggitarius4212 4 года назад

    Очень хорошо объясняете. Зачет!

  • @simplechannel7859
    @simplechannel7859 6 лет назад +2

    Отличные уроки!

  • @user-xp3fw1qr6h
    @user-xp3fw1qr6h 6 лет назад +11

    Спасибо! Отлично! Хотелось бы увидеть freemarker+postgre+security

    • @letsCodeDru
      @letsCodeDru  6 лет назад +11

      Вот прям от души спасибо за пожелания - мне так легче понимать, что вам интересно.
      Security - следующее на очереди. Freemarker - записал в план, буду снимать :)

  • @aleksandrbaklanov8645
    @aleksandrbaklanov8645 5 лет назад +3

    Во многих обучающих проектах по Spring никто не подчёркивает, что нужно использовать только JDK 8! Три дня потратил на попытки запустить почти все доступные учебные проекты - ничего с базами данных или xml не работало (пробовал на JDK 10 и 11). Установил JDK 8 - всё отлично работает!

    • @valentinf55
      @valentinf55 2 года назад

      Этот ответ нужно тащемта залайкать и поднять вверх!

  • @user-pz6ss6qo6y
    @user-pz6ss6qo6y 4 года назад

    Отличные уроки! Благодарю.

  • @TostersSchool
    @TostersSchool 5 лет назад

    большое спасибо за Вашу работу

  • @ascar66
    @ascar66 3 года назад

    Спасибо за урок! У меня с первого раза не получилось, пришлось все переделывать с первого видео и 4 видео, в итоге все работает, спасибо!

  • @mardaunt
    @mardaunt 4 года назад +45

    Ничего не понимаю, но... очень интересно.

    • @ttop1ttop145
      @ttop1ttop145 3 года назад

      это лучше чем изучать теорию по спрингу и потом ничего не мочь сделать) автор молодец глубоко не лезет, но обьясняет что делает ! респект за такой формат

  • @user-di1kh2sf2e
    @user-di1kh2sf2e 3 года назад +3

    У кого выводится такая ошибка:
    Failed to configure a DataSource: 'url' attribute is not specified and no embedded datasource could be configured.
    Reason: Failed to determine a suitable driver class
    то возможно вам поможет следующее:
    1) Создать проект с помощью Spring initializer , то есть когда вы создаете проект в intellij idea у вас есть выбор - Java, Maven, Gradle и т.д, и ниже есть Spring initializer, выбираете его и жмёте next до окна Dependencies и там выбираете что вам нужно (например Spring Boot DevTools, PostgreSql, Spring Data JPA, Spring Web и т.д) и должно все заработать. Использовал Ultimate версию и PostgreSQL
    2) Проделать тоже самое и просто скопировать pom.xml в ваш проект который вы создали с помощью maven, видимо эта ошибка только из за него.
    Некоторые предлагают вставить вот такую зависимость:
    com.h2database
    h2
    И все заработает, но в таком случае вы будете использовать встроенную БД, а не свою.
    Насчет этих строчек:
    spring.datasource.url=jdbc:postgresql://localhost:5432/sweater (порт указывать необязательно, можно просто "localhost/sweater" )
    spring.datasource.username=postgres (это имя стандартное, если вы просто установили PostgreSQL наверняка у вас такое же)
    spring.datasource.password=password123 (пароль устанавливается при установке PostgreSQL)
    spring.jpa.generate-ddl=true
    Больше никаких строчек добавлять не нужно на данном уроке.
    Если вы не знаете как создать базу данных:
    Когда вы установили PostgreSQL, найдите в поиске на компе SQL Shell(psql) и запустите его от имени администратора!!!
    Как только откроется командная строка , нажимайте Enter до строчки "Пароль пользователя postgres:" и введите свой пароль который вы указали при установке (если что пароль вводиться, просто он не отображается)
    Дальше может появиться предупреждение о кодовой страницы консоли, (вместо символов, будут какие кракозябры) просто введите данную строчку "psql \! chcp 1251"
    После создайте базу данных с помощью команды: "CREATE DATABASE название;" в нашем случае вместо "название" замените на "sweater", точку с запятой обязательно, и должно вывести сообщение "CREATE DATABASE"
    Чтобы проверить что она действительно есть введите команду \l
    Готово! Также если с помощью SQL Shell у вас не получилось, базу данных можно создать в "pqAdmin 4" в браузере, нажимаете правой кнопки мыши по Databases - Create - Database , но я думаю насчет этого создано уже много видосов....
    Надеюсь это кому то поможет
    Вот мой pom.xml, попробуйте вставить его:
    4.0.0
    org.springframework.boot
    spring-boot-starter-parent
    2.4.4

    com.example
    demo
    0.0.1-SNAPSHOT
    demo
    Demo project for Spring Boot
    11

    org.springframework.boot
    spring-boot-starter-data-jpa

    org.springframework.boot
    spring-boot-starter-mustache

    org.springframework.boot
    spring-boot-starter-web
    org.springframework.boot
    spring-boot-devtools
    runtime
    true

    org.postgresql
    postgresql
    runtime


    org.springframework.boot
    spring-boot-maven-plugin

  • @user-pu7kb3il2y
    @user-pu7kb3il2y 6 лет назад +4

    отличные видео, отлично говорите, приятно слушать, жаль мало объяснений что как работает, надо самому гуглить, но все очень хорошо сделано. Дважды смотрел видео ради того, чтобы отображался список сообщений)), в итоге оказалось написал в форме вывода {{message}}, а нужно было {{messages}}

    • @letsCodeDru
      @letsCodeDru  6 лет назад +1

      Это интро. Расширенную версию с пояснениями планирую дальше снимать

  • @vladislavbarbarii2089
    @vladislavbarbarii2089 4 года назад +1

    Шикарные уроки, спасибо

  • @farkhoddaniyarov4909
    @farkhoddaniyarov4909 5 лет назад

    Спасибо, хорошие видео уроки. Кратко, сжато, без лишней воды и мути! Мои лайки

  • @user-dk9wl7jr4h
    @user-dk9wl7jr4h 3 года назад

    Спасибо. Хорошие уроки

  • @Andrey99241
    @Andrey99241 4 года назад

    Спасибо за гайды!!!

  • @borismatashin5891
    @borismatashin5891 3 года назад

    вообще Топ видос , делай контент , так учить и надо)

  • @user-pe6ni2ho3f
    @user-pe6ni2ho3f 5 лет назад +3

    Спасибо большое, очень хорошо и доходчиво. Дорогой Андрей, хочу напомнить о серии видео о Thymeleaf и по возможности рассмотреть вопрос с многоязычностью приложения. С огромной благодарностью, спасибо.

    • @letsCodeDru
      @letsCodeDru  5 лет назад +2

      Будет таймлиф, не переживай)

  • @kasarch
    @kasarch 4 года назад

    Посмотрел несколько видосов с твоего канала. В общем впечатления только положительные : делаешь все быстро, рассказываешь все по делу без объяснений из разряда Адмирал Ясен Пень.
    В общем удачи!

  • @AnnaSmirnova1
    @AnnaSmirnova1 4 года назад

    Спасибо большое за урок!!!
    spring.jpa.hibernate.ddl-auto=update
    это для тех у кого не запускалось подключение к БД + вручную создала БД через консоль

  • @andreymorozov1189
    @andreymorozov1189 5 лет назад +1

    Спасибо, добрый человек, очень познавательно!

  • @DaymonYESANDNO5
    @DaymonYESANDNO5 Год назад +4

    Было бы здорово детально объяснять что зачем импортируем или в краце)
    Например КрудРепозитори для управления бд основные методы можем узнать провалившись туда-то
    Свои методы можем создать так-то
    Принимает сущность в первом поле и тип поля по которому добавляется запись в бд
    У нас это Лонг тк по id добавляется а тип у id лонг
    Воть)

  • @dddryinside
    @dddryinside 10 месяцев назад +2

    У меня почем-то не создаётся таблица в БД после запуска приложения...

  • @wodzimierzletov2990
    @wodzimierzletov2990 4 года назад +1

    Здравствуйте! Понимаю, что шансов получить ответ на свой вопрос не много, но всё же хочется узнать: почему при подключении постгреса, вы указали у него ограничение runtime?

  • @user-em7td9vx2v
    @user-em7td9vx2v 5 лет назад +6

    Спасибо большое за крутые уроки, на данный момент это лучшее что я нашел о Spring.
    Для тех, кто будет мучиться с ошибками типа "Error creating bean with name 'entityManagerFactory'" рекомендую прочитать официальную вики github.com/spring-projects/spring-boot/wiki/Spring-Boot-with-Java-9-and-above
    Кому лень читать и разбираться самому, просто добавьте зависимость jaxb-runtime в pom.xml

    • @JIeshaz
      @JIeshaz 5 лет назад +4

      Спасибо за наводку. Мне не помогло jaxb-runtime с glassfish, а помог hibernate-core (на текущую дату добавил эту зависимость, версия 5.4.2, все заработало)

    • @dmitrytsyrulik5337
      @dmitrytsyrulik5337 4 года назад +1

      У меня было неправильное имя базы данных и возникала такая же ошибка в конце. Так что проверяйте имя бд тоже.

    • @rhythmicpulse2760
      @rhythmicpulse2760 2 года назад

      Мне помогли эти зависимости:
      javax.xml.bind
      jaxb-api
      2.3.1
      org.javassist
      javassist
      3.25.0-GA

  • @ivanfoshin6429
    @ivanfoshin6429 3 года назад +4

    Большое спасибо за ваши уроки, действительно толково описываются действия.
    Вопрос - момент 10:40, при обновлении страницы последняя запись снова добавляется в базу. Почему так происходит?

  • @yevgen4195
    @yevgen4195 5 лет назад +30

    6:33 Ctrl + Alt + V
    По крайней мере это дефолтный вариант для данного экшена (Extract variable).

    • @Ilya_yarets
      @Ilya_yarets 4 года назад

      а что вообще делает эта команда? не совсем понял

    • @DYTerMyter
      @DYTerMyter 4 года назад +1

      @@Ilya_yarets задаёт тип и название для присваивания

    • @wizardadeptus2044
      @wizardadeptus2044 4 года назад

      У ведущего Linux. На линуксе несколько другие горячие клавиши. В частности, комбинация ctrl + alt + системная.

    • @DenissGoodd
      @DenissGoodd 4 года назад

      а я то думал что не так

  • @alexsss3851
    @alexsss3851 3 года назад +4

    Спасибо за уроки!
    Вопросы:
    1. Почему у фильтра Post запрос? Он ведь не меняет состояние сервера.
    2. Если делать на методах Post запросов редирект на main, то как в случае фильтра передать на него новый отфильтрованный список messages?

  • @andreyrogov5533
    @andreyrogov5533 5 лет назад

    Спасибо за прекрасный пример. Добавь пожалуйста реализацию AOP

  • @user-bj3jk6tp3h
    @user-bj3jk6tp3h 5 лет назад +3

    ждем продолжения братик, пили проектики на Spring(e)

  • @user-uv9rp5up4p
    @user-uv9rp5up4p 5 лет назад +1

    Привет! Может методу findByTag() стоит возвращать аналогично findAll(), т.е. Iterable?
    Или без разницы?

  • @user-fc4kk8ek9u
    @user-fc4kk8ek9u 5 лет назад

    Спасибо за видео

  • @user-ey3kx3oi4j
    @user-ey3kx3oi4j 2 года назад

    Отлично, спасибо!

  • @victormog
    @victormog 6 лет назад +52

    Новичков часто пугают красные предупреждения при использовании, например, MySQL типа:
    "WARN: Establishing SSL connection without server's identity verification is not recommended."
    Решения два:
    либо использовать SSL подключение к БД (т.е. зашифрованное подключение) - что сложнее,
    либо уведомить драйвера MySQL о том, что SSL для подключения к БД использоваться *не будет.*
    Для этого надо просто к строке подключения (в данном примере переменная _spring.datasource.url)_ добавить в конец _"?true&useSSL=false"._ Т.е. полностью должно получиться так:
    *_spring.datasource.url=jdbc:mysql://localhost:3306/sweater?true&useSSL=false_*
    С таким URL данных предупреждений не будет.

    • @user-mf7ur4zt9k
      @user-mf7ur4zt9k 5 лет назад

      Спасибо, ваш совет помог. Только, почему-то автоматически база данных не создается и спринг выдает ошибку и не запускается. После ручного создания бд в mySQL запустилось приложение

    • @someunknownuser
      @someunknownuser 5 лет назад

      Василий Васильев саму бд надо создать, а таблицу и столбцы создаст сам спринг (мы для это использовали аннотацию @Entity).

    • @user-xe2sj3ot6n
      @user-xe2sj3ot6n 4 года назад +1

      github.com/serg03092017/let-sCodeLessons вот тут версия, которая работает!!!!, но перед этим нужно создать базу данных mysql с таблицей и полями. Ещё надо выбрать Ru/Debug Configurations и назначить Main класс com.example.sweater.Application. pom.xml тут правильный!!! Ещё необходимо прочитать Readme.txt

    • @lisafox9026
      @lisafox9026 2 года назад

      @@someunknownuser База создается сама, смысл писать такое приложение и самому базу создавать?
      нужно почитать конфигурации.

    • @user-xe2sj3ot6n
      @user-xe2sj3ot6n 2 года назад

      @@lisafox9026 нужно создавать базу данных. Нужно создать схему (database) в mysql workbench для mysql или в pgadmin для postgres. С именем к которому подключаемся. Также после создаём таблицы для классов с аннотация ми entity. И на при работе необходимо держать подключение к базе всегда открытым. Например запущенный pgadmin или mysql workbench. Сама база создалась в случае h2 database, но и для этого необходимо было бы добавить скрипт создания базы и таблиц.

  • @alexandershuvalov8959
    @alexandershuvalov8959 3 года назад

    Большое спасибо, отличная подача!
    Если у кого-то будут лететь исключения, связанных с подключением к БД, мне помогло добавить параметр serverTimezone=GMT
    spring.datasource.url=jdbc:mysql://${MYSQL_HOST:localhost}:3306/sweater?serverTimezone=GMT

  • @user-tu6ed5vy4e
    @user-tu6ed5vy4e 5 лет назад +2

    Видео нравится, спасибо автору.
    Но хотелось бы более подробно, так сказать, с чувством, с толком, с расстановкой. Например, про интерфейс MessageRepo. Почему это интерфейс? Откуда там методы save и findAll? То есть более подробно про фреймворк, что он делает, что означают аннотации и т.д. Хочется понимать, что происходит, а не просто копировать из гайда....

  • @user-cv1pi1xq4w
    @user-cv1pi1xq4w Год назад

    Супер! Спасибо!

  • @user-mf7ur4zt9k
    @user-mf7ur4zt9k 5 лет назад

    ваша БД находится на локалхосте? А можно ли добавить ее в проект? И что бы запросы работали нужно, чтобы СУБД была запущена? Вот я использую MySql, все также работает, но если СУБД закрыть, то put запрос не выполняется

  • @evgeniymukhamadiarov1805
    @evgeniymukhamadiarov1805 4 года назад

    Все здорово, но после доваления фильтра по данному туториалу становиться недоступна опция "Добавить", проблему я решил добавив аналогично action = "some_name" в и в @PostMapping("some_name")

  • @ingvarriver5793
    @ingvarriver5793 4 года назад

    Спасибо за видео, а могу ли я использовать SQLite вместо Postgres-a? и какие конфиги прописывать application.properties?

  • @alexeysharandin7364
    @alexeysharandin7364 5 лет назад +3

    Отличные видео. Но для новичков все же h2 лучше использовать или другие embedded. Чтобы не заморачивались с установками mysql & etc.

  • @alexandr7722
    @alexandr7722 3 года назад +2

    Объяснения из разряда если ты понимаешь что происходит, то можно не смотреть, а если не понимаешь это видео не дает какого то понимания. Это мы вставили это скопировали сейчас запустили, вот тут это выскочило. Алишев в этом плане конечно х5 по доступности объяснений.

  • @usertyfoon
    @usertyfoon 10 месяцев назад

    Это было круто!!!

  • @duckpool288
    @duckpool288 4 года назад

    спасибо! крутяк!

  • @r1fo341
    @r1fo341 2 года назад

    Спасибо за видео, возможно ли просмотреть содержимое нашей БД через postgres, а не через метод findAll?

  • @romandavydov3888
    @romandavydov3888 4 года назад +36

    Видео супер, но можно сделать отдельный видос про БД Postgres

  • @kensaitakeso
    @kensaitakeso 2 года назад

    отличные уроки. скажи плиз а это будет работать если прикрутить ломбок и заменить гетеры сеттеры конструкторы на аннотации?

  • @farkhutdinove.2125
    @farkhutdinove.2125 5 лет назад +7

    Для тех кто использует postgresql .Если будет выдавать ошибку -->"Caused by: java.sql.SQLFeatureNotSupportedException: Метод org.postgresql.jdbc.PgConnection.createClob() ещё не реализован
    at org.postgresql.Driver.notImplemented(Driver.java:688) ~[postgresql-42.2.5.jar:42.2.5]/////в файл application.properties вставьте ----> spring.jpa.properties.hibernate.jdbc.lob.non_contextual_creation=true

    • @user-iw8mh3tq3d
      @user-iw8mh3tq3d 5 лет назад

      Ошибка не ушла, но программа все равно работает.

    • @arthur8450
      @arthur8450 5 лет назад +1

      @@user-iw8mh3tq3d spring.jpa.properties.hibernate.temp.use_jdbc_metadata_defaults=false

    • @user-em7td9vx2v
      @user-em7td9vx2v 5 лет назад +1

      @@user-iw8mh3tq3d попробуйте добавить зависимость jaxb-runtime в pom.xml об этом пишут и в официальной вики github.com/spring-projects/spring-boot/wiki/Spring-Boot-with-Java-9-and-above
      мне помогло)

  • @user-qy7yv1ut4c
    @user-qy7yv1ut4c 3 года назад

    на 13:25 - Вы говорите что "filter" это маппиг по которому уходят данные. А как это тогда связанно с "" ? вроде как action=filter указывает на то что @PostMapping("/filter") будет переданные данные обрабатывать. Правильно я понимаю? те это " как бы указание адреса куда данные отправляются, а потом по этому адресу срабатывает @PostMapping("/filter") метод и делает с данными все что нужно, а адрес в адресной строке просто остается как ненужный след.

  • @user-bt3qv9pj1o
    @user-bt3qv9pj1o 3 года назад +1

    Добрый день, очень полезны ваши гайды. Но вы в видео не показываете как создаете саму БД. Я работаю тоже в Идее и справа во вкладке создаю базу PostgreSQL и в url указываю название своей БД. Но почему-то при запуске выдает следующую ошибку: Подсоединение по адресу localhost:5432 отклонено. Проверьте что хост и порт указаны правильно и что postmaster принимает TCP/IP-подсоединения. Потом решил скачать ваш проект и выдает ту же ошибку, мне кажется проблема в том, что я неправильно создаю буду. Буду рад, если вы ответите!

  • @olegbokerov7152
    @olegbokerov7152 Год назад

    Уроки однозначно для тех, кто уже знаком с материалом - подробных объяснений здесь нет. Если вы не в теме, то получится "повторяю, но не понимаю, что делаю". Рекомендую для начала пройти курс по спрингу и хайбернету, а потом идти сюда для создания более менее крупного проекта

  • @vladzagRussia
    @vladzagRussia 5 лет назад +6

    Для тех кто использует MySQL
    Вот как должна выглядеть урл если у вас проблемы с тайм зонами
    jdbc:mysql://localhost:3306/test?useUnicode=true&useSSL=true&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=UTC

    • @ylukianchenkot
      @ylukianchenkot 4 года назад

      thanks very much )

    • @gradleshade
      @gradleshade 4 года назад

      Спасибки мэн

    • @iosif-stalin
      @iosif-stalin 4 года назад +2

      у меня MySql вот с такой строкой прокатило: spring.datasource.url=jdbc:mysql://${MYSQL_HOST:localhost}:3306/developerdb?serverTimezone=UTC

    • @user-ve6kt7uj5r
      @user-ve6kt7uj5r 4 года назад

      @@iosif-stalin Лучший

    • @nickromanchuk7383
      @nickromanchuk7383 4 года назад

      Красава

  • @user-jo9zj4bj8g
    @user-jo9zj4bj8g 5 лет назад +2

    Я новичёк. Для меня были следующие сложности в понимании:
    1.Не подключился к базе( т.е к схеме, которую создал) пока не указал путь mysql.exe в системные переменные компьютера. Не хотело, выпадало исключение.
    2.в апликейшнпропертях всю строку =create всё-таки убрал, потому что после перезагрузки страницы тэги, значения вытирались. Зашуршало.
    Спасибо автору, за отсутствие «воды». Хотя иногда хотелось бы чтобы пожевали подольше.

  • @seymourguado
    @seymourguado 5 лет назад +7

    Спасибо автору за прекрасное изложение материала, отсутствие "воды" и замечательную дикцию.
    Для тех кто оставил базу MySQL пишем spring.datasource.url=jdbc:mysql://localhost:3306/sweater?useSSL=false&useUnicode=yes&characterEncoding=UTF-8 чтобы адекватно обрабатывалась кирилица и не было ругани на SSL, постгресс нормально работает "из коробки".

    • @AleksandrShtomov
      @AleksandrShtomov 5 лет назад

      мне не помог этот костыль, так кириллица и не распознается

    • @vvbubnov
      @vvbubnov 4 года назад

      все попытки исправить ситуацию таким образом привели лишь к General error: 1366 Incorrect string value

  • @DennisKingsman
    @DennisKingsman 5 лет назад

    Здравствуйте, community idea не позволяет использовать mustache файлы , на сайте jetBrains так и сказано, не могли бы вы указать какой нибудь обходной путь(возможно его все таки как то можно использовать в community) или объяснить как делать то же самое,что вы делаете на mustache , только на thymeleaf, спасибо

  • @Serj1k2k
    @Serj1k2k 5 лет назад

    Здравствуйте, про попытке подключиться к mysql вылетает ошибка
    Exception during pool initialization.
    java.sql.SQLException: Access denied for user '"root"'@'localhost' (using password: YES)
    через ком.строку подключается и видит все нормально, если руками через jdbc.Driver создать соединение и написать запрос, то jvm тоже видит и создает таблицы.

  • @romanbadiak1327
    @romanbadiak1327 4 года назад +9

    Failed to configure a DataSource: 'url' attribute is not specified and no embedded datasource could be configured.
    Reason: Failed to determine a suitable driver class
    Что с этим делать?
    *Решено*
    1. В файл pom.xml добавьте следующие строки:
    com.h2database
    h2
    2. Уберите {{name}} из main.mustache
    Если не знаете как создать базу данных, то в линуксе это делается так (просто вводите по очереди в терминал):
    1.1 sudo apt-get update
    1.2 sudo apt-get install postgresql postgresql-contrib
    /две команы выше делаются лишь единожды/
    1.3 sudo -i -u postgres
    1.4 createdb sweater
    Чтобы убедиться что базу данных вы создали, зразу после этого введите
    2.1 psql
    2.2 \l
    Мне помогло. Отпишитесь кому помог))

    • @mamaige
      @mamaige 4 года назад

      Спасибо тебе добрый человек))) Помогло

    • @user-jg9qe4rp6m
      @user-jg9qe4rp6m 3 года назад

      Как это работает?

    • @user-im6th1lj8e
      @user-im6th1lj8e 3 года назад

      Чел, ты просто гений, зависимость помогла

    • @giorgypapov476
      @giorgypapov476 3 года назад

      спасибо большое!) помогла зависимость

  • @maximbogdanov3462
    @maximbogdanov3462 Год назад

    Подскажите пожалуйста, почему mustache не рендерит utf-8 (русские буквы -вопросами)? с thymeleaf такого не происходит. java 18 maven 4 sping 3.0.0 snapshot

  • @xrguides
    @xrguides 4 года назад +1

    У меня не работает Postgres делал все по видео , запускаю выдает ошибку :
    org.postgresql.util.PSQLException: Подсоединение по адресу localhost:5432 отклонено. Проверьте что хост и порт указаны правильно и что postmaster принимает TCP/IP-подсоединения.
    Думаю ладно, может где-то не так прописал что-то , загрузил с гита готовый проект , по идее должно ж все работать отлично, но нет та же проблема.
    Подскажите пожалуйста почему так?
    Буду очень благодарен!

  • @Denis-wn1xr
    @Denis-wn1xr Год назад

    спасибо бро!

  • @dmitrymukhin9458
    @dmitrymukhin9458 6 лет назад +18

    Лайвхак: если в post методе поставить return "redirect:/" то не нужно писать ненужный код вклдывания в модель:)

  • @solntmore
    @solntmore Год назад

    Попробовал нагуглить, но не нашел. С помощью Mustache мы можем только параметры передавать в запросе? Если я хочу в контроллере уже принимать объект, чтобы корректно работали аннотации валидации для моих DTO, то mustache мне не подходит или есть вариант упаковать этот набор данных в json, чтобы потом он в java-класс сразу распарсился?

  • @egos_ua
    @egos_ua 3 года назад

    В этом уроке мы прописываем поле тег класса Стринг, это для простоты понимания и фильтрации по тегам? Более реалистичным мне кажется сделать это поле Листом Стрингов. Видимо в учебных целях так, да?

  • @jiln3hb
    @jiln3hb Год назад

    спасибо вам

  • @user-rj2hf7my9l
    @user-rj2hf7my9l 2 года назад

    Если при обновлении страницы у вас в бд снова добавляется сообщение - это нормально. Чтобы исправить это, в методе, который обрабатывает Post запрос, делайте редирект. Просто вместо "main" возвращайте "redirect:/main"

  • @user-fq9hu1sz7l
    @user-fq9hu1sz7l 5 лет назад

    Что и где лучше использовать crudrepository или jparepository?

  • @barrrsss
    @barrrsss 3 года назад

    Правильно ли для получения данных использовать Post запрос? Вроде как Get должен быть.

  • @shakhzodrasulov
    @shakhzodrasulov 3 года назад

    Здравствуйте! #Вопрос: После функции "Искать по тегам" в адресной строке появляется /filter, и после этого если хочу добавить еще один сообщение выдает ошибку. Почему? Если убрать /filter в конце адреса то проблем нет, обясните пожалуйста!

  • @M.Darsky
    @M.Darsky Год назад

    если что: при создании new Message (9:10) не обязательно создавать конструктор в бине сущности, у тебя же там сеттеры уже есть, можно инициализировать поля чз них. просто Message message = new Message(); message.setText("текст"); и save там в конце. прост ты говоришь "нельзя добавить поля сразу в бин". а можно,)

  • @mutovin
    @mutovin 4 года назад

    Ребят, мне необходимо с помощью spring работать с mysql, только данные к базе пользователь должен заполнить сам в веб интерфейсе при первом запуске приложения. Куда копать подскажите плиз. Интересует настройка параметров подключения к базе уже после запуска спринга

  • @user-kc8lk1if1p
    @user-kc8lk1if1p 5 лет назад

    столкнулся с проблемой. после вставки в pom.xml депенденси с org.postgresql, выделяет красным с ошибкой Dependency 'org.postgresql:postgresql:' not found less... (Ctrl+F1)
    Inspection info: Inspects a Maven model for resolution problems.

  • @kostiantynvergelis2664
    @kostiantynvergelis2664 5 лет назад +3

    прямо приятно изучать по этим урокам! спасибо автору! Появился вопрос...как Spring понимает что нужно обращаться к методу add при добавлении ? если в форме не указать action или указать main все равно отрабатывает add. за счет чего ?

    • @java_couch
      @java_couch 4 года назад +2

      потому что метод add обозначени анотацией PostMapping что означает - что он обрабатывает пост запросы по дефолтному мапингу

  • @gregoryjesman6837
    @gregoryjesman6837 4 года назад

    Чётко!

  • @antonstezhkin5991
    @antonstezhkin5991 3 года назад +1

    А как искать по нескольким параметрам? К примеру пять-шесть параметров, любого из которых может не быть. Ну и разные варианты взаимодействия параметров и, или, с- по, все кроме и.т.д.

  • @user-dw1of3fw4t
    @user-dw1of3fw4t Год назад

    пересмотрел предыдущий и этот урок еще раз но не могу понять где и что мы передаем в параметр Map model ?

  • @b7ty60
    @b7ty60 5 лет назад

    Штука по mustache очень конечно полезная, но есть ли такая по thymeleaf??

  • @user-es2pt8mk2w
    @user-es2pt8mk2w 4 года назад +9

    Много различных исключений возникало, пока не изменил версию SpringBoot в pom.xml на 2.1.7.RELEASE, как написано в нынешнем руководстве.

    • @user-yq7wh9do7y
      @user-yq7wh9do7y 4 года назад +2

      Спасибо, добрый человек! Промучался, конечно: то одно не подтягивается, то другое. Уже начал gradle ставить, как увидел Ваш комментарий. Спасибо!

    • @letsCodeDru
      @letsCodeDru  4 года назад

      Да, время идёт, спринг растёт и развивается. Такова жизнь)))

    • @mixfix86
      @mixfix86 4 года назад

      у меня всё в норме

    • @codefury9342
      @codefury9342 3 года назад

      Храни тебя господи

    • @pechenegam3444
      @pechenegam3444 3 года назад +1

      ОГРОМНЕЕШОЕ ВАМ СПАСИБО И НИЗКИЙ ПОКЛОН ЗА ЭТО ПОДСКАЗКУ

  • @arseniymarkov5502
    @arseniymarkov5502 3 года назад

    спасибо!