> For the complete documentation index, see [llms.txt](https://programmingfundamental.gitbook.io/programmingwithjava/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://programmingfundamental.gitbook.io/programmingwithjava/internet-tekhnologii-2023/laboratorno-uprazhnenie-9-10/konfigurirane-na-postgresql-db.md).

# Конфигуриране на PostgreSQL DB

1. В pgAdmin създайте потребител и база от данни

<figure><img src="https://3165743208-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUbVVR-jiMUx7iVRyw6%2Fuploads%2FVEw7p1l0faPHeDhXQvKn%2Fimage.png?alt=media&amp;token=e4b09619-91bd-483d-a193-a209c11f215b" alt=""><figcaption></figcaption></figure>

<figure><img src="https://3165743208-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUbVVR-jiMUx7iVRyw6%2Fuploads%2FypHpSS89jvwUoRfqbTVE%2Fimage.png?alt=media&amp;token=636019eb-69b9-4ae0-b00d-36564d83426a" alt=""><figcaption></figcaption></figure>

<figure><img src="https://3165743208-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUbVVR-jiMUx7iVRyw6%2Fuploads%2F2jqsbHP9xDQZo4uOLi0Y%2Fimage.png?alt=media&amp;token=f75b3545-c52a-4c59-8365-f3c1eb38e127" alt=""><figcaption></figcaption></figure>

<figure><img src="https://3165743208-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUbVVR-jiMUx7iVRyw6%2Fuploads%2FgU8kAly9rwkdTyXY6s0W%2Fimage.png?alt=media&amp;token=97b3c66c-e839-4cfb-b2c2-3f59731b68e9" alt=""><figcaption></figcaption></figure>

<figure><img src="https://3165743208-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUbVVR-jiMUx7iVRyw6%2Fuploads%2FyeXhcF37InDjBhsJ34Gn%2Fimage.png?alt=media&amp;token=9bba8c0e-c9a5-4d16-857f-c8985de8c7d0" alt=""><figcaption></figcaption></figure>

За да активирате JPA в Spring Boot приложението, се нуждаем от зависимостта *spring-boot-starter-data-jpa*. Необходимо е да се добави и зависимост към JDBC драйвер, специфичен за базата данни, в нашия случай драйвера на PostgreSQL. Spring boot конфигурира Hibernate като JPA провайдер по подрабиране.

```xml
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-data-jpa</artifactId>
    </dependency>

    <dependency>
      <groupId>org.postgresql</groupId>
      <artifactId>postgresql</artifactId>
      <scope>runtime</scope>
    </dependency>
```

2. В application.properties добавете следните конфигурации:

```
spring.datasource.url=jdbc:postgresql://localhost:5432/tasks-db
spring.datasource.username=myadmin
spring.datasource.password=mypassword
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.PostgreSQLDialect

# Hibernate ddl auto (create, create-drop, validate, update)
spring.jpa.hibernate.ddl-auto=update
```

Със свойството spring.jpa.hibernate.ddl-auto можете да зададете как Hibernate да реализира автоматичното генериране на схема. Възможни опции:

·       validate – извършва се проверка дали вече съществуващата схема съответства на предвидените entity.  Това е полезна опция, ако базата данни се управлява външно, но все пак искате да сте сигурни, че схемата отговаря на вашите очаквания.

·       create – създава схeма, като ако са налице предходно съществуващи данни, те се унищожават.

·       create-drop – изтрива схемата в края на сесията. Подходящо за провеждане на тестове.

·       update - Hibernate автоматично генерира схемата според предоставените Java entity. Работи на принципа на добавяне на нови изменения. Не се препоръчва да се използва при вече работещи приложения.

3\.      Добавете Data Source в Database (за IntelliJ IDEA Ultimate)

Data Source e местоположението на данните на вашето приложение. &#x20;

<figure><img src="https://3165743208-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUbVVR-jiMUx7iVRyw6%2Fuploads%2FG0oII4voDdx582wsXzc0%2Fimage.png?alt=media&amp;token=b6f64761-b276-4db1-879b-1aae8e00ce38" alt=""><figcaption></figcaption></figure>

<figure><img src="https://3165743208-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUbVVR-jiMUx7iVRyw6%2Fuploads%2FWK7RA2btEHc5wKd8o4yu%2Fimage.png?alt=media&amp;token=c80b2cdd-83f4-41c3-861a-289374d2e503" alt=""><figcaption></figcaption></figure>

Тестваме връзката:

<figure><img src="https://3165743208-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUbVVR-jiMUx7iVRyw6%2Fuploads%2FSWcpDaY5F2TOd8rqMvrF%2Fimage.png?alt=media&amp;token=19fc77e4-5163-43a9-905b-eaa341335518" alt=""><figcaption></figcaption></figure>

В прозореца Persistence:

<figure><img src="https://3165743208-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUbVVR-jiMUx7iVRyw6%2Fuploads%2FU4RIN3RoWiOPMX6OUiFV%2Fimage.png?alt=media&amp;token=61a19126-9274-4556-bd3a-154e6e1c9838" alt=""><figcaption></figcaption></figure>

<figure><img src="https://3165743208-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUbVVR-jiMUx7iVRyw6%2Fuploads%2FTElg216C6ZrTsgA4YRM7%2Fimage.png?alt=media&amp;token=bbf19b92-71ba-41a1-a8d6-274ac0e8f42e" alt=""><figcaption></figcaption></figure>
