JavaRush/Java блог/Java Developer/Spring — это не страшно, или как подключить базу данных д...
Павел
11 уровень

Spring — это не страшно, или как подключить базу данных для студенческого проекта за 5 минут

Статья из группы Java Developer
участников
СОДЕРЖАНИЕ ЦИКЛА СТАТЕЙ Для начала создадим web сервер на Spring Boot. B pom файл в блок <dependencies> добавим следущие зависимости:
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
    <groupId>com.h2database</groupId>
    <artifactId>h2</artifactId>
</dependency>
Первая зависимость нужна для работы Spring с базой данных. Вторая зависимость h2 (эйч ту) займется эмуляцией базы данных без скачиваний, установок и сложных конфигураций. Теперь хочу, что бы вы задали себе вопрос: "Кем я хочу стать? Monkey-кодером, который не в состоянии написать что-то сам? Или разработчиком?" Если хотите стать разработчиком, то обязательно прочитайте хорошую книгу про смысл и концепцию Spring, или хотя бы цикл статей. Прямо сейчас можете поискать информацию в интернете о том, что такое бины, сущности, внедрение зависимостей в Spring, способы конфигурации бинов. Вернемся к нашим базам. Вся конфигурация будет состоять в следующем: В resourses создаем файл application.yml (название очень важно!), заполняем содержимым:
spring:
  datasource:
    driverClassName: org.h2.Driver
    url: jdbc:h2:mem:test;
    username: sa
    password:
    h2:
      console:
        enabled: true
  jpa:
    hibernate:
        ddl-auto: create
    generate-ddl: true
    show-sql: false
    properties:
      hibernate:
        dialect: org.hibernate.dialect.H2Dialect
Посмотрим на datasource: driverClassName: указывает, какой тип базы мы будем использовать, у нас это h2. Если бы мы установили Postgres, то написали бы rg.postgresql.Driver; url: — это место, где располагается база, у нас она располагается непосредсвенно в памяти проекта, о чем говорит слово mem (от memory — память), то есть при рестарте приложения база будет создана заново. Можно вместо jdbc:h2:mem:test; написать jdbc:h2:~/test;, и база будет храниться в папке проекта. Опять же, если бы у нас был установлен Postgres, то написали бы что то вроде jdbc:postgresql://localhost:5432/mydb. Теперь jpa: hibernate.ddl-auto: говорит, что делать со схемой базы при перезапуске приложения. Сейчас тут стоит create — значит, создавать заново, также может стоять update — дополнять базу, create-drop — очищать при запуске. Слово hibernate тут не спроста, почитайте про него в интернете, потому что он нам будет нужен. Остальные слова сейчас не важны. Дальше посмотрим, как эту базу можно наполнить и как с ней работать.
Комментарии (5)
  • популярные
  • новые
  • старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
kosatchev
Уровень 13
9 декабря 2020, 17:34
Пихать сюда ломбок, который скрывает половину важного для понимания кода - значит не уважать время людей, которые будут это читать, и пытаться понять, что должно быть в коде вместо этих аннотаций. Хотите научить ломбоку - создайте урок, но не вынуждайте использовать лишнюю зависимость там, где это не надо. Сколько раз замечал, любители ломбока ведут себя как веганы: "Посмотрите, я веган, значит все вокруг меня тоже обязаны есть траву!" ps. я не говорю, что ломбок это плохо, я говорю о том, что всему свое место
Павел
Уровень 11
9 декабря 2020, 18:50
А чем плоха статья про ломбок, ссылку на которую я оставил? Да и в интернете ни кто не мешает почитать. Скрытым кодом я пожертвовал ради лаконичности, это был мой выбор. Про веганство это забавное сравнение) Я люблю ломбок и люблю спринг, и мне не стыдно в этом признаться😂 Но не отрицаю что можно писать и на двоичном коде, что бы уж точно ни чего не пропустить
kosatchev
Уровень 13
9 декабря 2020, 19:28
Спасибо, что приняли мою критику позитивно, этим вы немного облегчили мою боль. Я хочу сказать, что урок на то и нужен, чтобы показать, как работает та или иная технология, продемонстрировав все нюансы. А ломбок хорошо бы уместился в пункте 5.5 "Как сделать проект лаконичным с помощью Lombok". Где в очередной раз, и очень кстати, вы продвинули бы эту библиотеку. Было бы показательно увидеть некоторые моменты до и после.
Павел
Уровень 11
9 декабря 2020, 20:18
Хм, вот тут вы правы, про статью "Как сделать проект лаконичным с помощью Lombok", это хорошая идея, правда до п.5 я не дотяну без него), а вот на п.3.1 можно будет по пробывать внедрить в цикл
Дмитрий
Уровень 35
6 декабря 2020, 14:31
Мне одному это кажется какой то бредятиной или это действительно что-то умное и полезное?)