# Конфигуриране на 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&#x26;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&#x26;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&#x26;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&#x26;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&#x26;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&#x26;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&#x26;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&#x26;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&#x26;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&#x26;token=bbf19b92-71ba-41a1-a8d6-274ac0e8f42e" alt=""><figcaption></figcaption></figure>


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://programmingfundamental.gitbook.io/programmingwithjava/internet-tekhnologii-2023/laboratorno-uprazhnenie-9-10/konfigurirane-na-postgresql-db.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
