Подключить PostgreSQL в IntelliJ IDEA через JDBC — 4 способа

Четыре способа подключить PostgreSQL в IntelliJ IDEA: встроенный Database tool без JDBC-файла, добавить JDBC Driver вручную, Maven/Gradle зависимость для Java-проекта, Spring Boot datasource. Разбираем каждый с примерами конфигурации.

PostgreSQL база знаний: перейти в рубрику с уроками на русском языке

Способ 1 — Database tool в IntelliJ IDEA

IntelliJ IDEA встроенный Database tool автоматически скачивает JDBC-драйвер — не нужно ничего скачивать вручную:

  • Открыть: View → Tool Windows → Database (или значок базы данных справа)
  • Нажать +Data SourcePostgreSQL
  • Заполнить параметры подключения
  • При первом подключении IDEA предложит скачать драйвер — нажать Download
  • Нажать Test Connection → должно появиться «Successful»
Параметры подключения в Database tool:
  Host:     localhost
  Port:     5432
  Database: mydb
  User:     postgres
  Password: ваш_пароль

URL строка (автоматически строится):
  jdbc:postgresql://localhost:5432/mydb

Дополнительные параметры (Advanced tab):
  sslmode=require        -- для облачных баз (Supabase, Neon)
  currentSchema=public   -- схема по умолчанию

Способ 2 — JDBC Driver JAR вручную

Если нет доступа к интернету или нужна конкретная версия:

  • Скачать postgresql-42.x.x.jar с сайта jdbc.postgresql.org
  • В Database tool: +Data SourcePostgreSQL
  • Внизу: Driver: нажать на ссылку → Go to Driver
  • В открывшемся окне: вкладка Driver files → убрать существующие → + → выбрать скачанный JAR
  • Вернуться к настройкам подключения и нажать Test Connection
// Использование JDBC напрямую в Java коде:
import java.sql.*;

public class PostgreSQLExample {
    public static void main(String[] args) throws Exception {
        String url = "jdbc:postgresql://localhost:5432/mydb";
        String user = "postgres";
        String password = "пароль";

        try (Connection conn = DriverManager.getConnection(url, user, password)) {
            System.out.println("Подключено: " + conn.isValid(0));

            try (Statement stmt = conn.createStatement()) {
                ResultSet rs = stmt.executeQuery("SELECT id, email FROM users LIMIT 5");
                while (rs.next()) {
                    System.out.println(rs.getInt("id") + ": " + rs.getString("email"));
                }
            }
        }
    }
}

Способ 3 — Maven зависимость



    org.postgresql
    postgresql
    42.7.11




    com.zaxxer
    HikariCP
    5.1.0
// Пример с HikariCP пулом соединений:
import com.zaxxer.hikari.HikariConfig;
import com.zaxxer.hikari.HikariDataSource;
import java.sql.*;

public class DatabaseConfig {
    private static HikariDataSource dataSource;

    static {
        HikariConfig config = new HikariConfig();
        config.setJdbcUrl("jdbc:postgresql://localhost:5432/mydb");
        config.setUsername("postgres");
        config.setPassword("пароль");
        config.setMaximumPoolSize(10);
        config.setMinimumIdle(2);
        config.setConnectionTimeout(30000);  // 30 сек
        dataSource = new HikariDataSource(config);
    }

    public static Connection getConnection() throws SQLException {
        return dataSource.getConnection();
    }
}

Способ 4 — Gradle зависимость

// build.gradle (Groovy DSL):
dependencies {
    implementation 'org.postgresql:postgresql:42.7.11'
    implementation 'com.zaxxer:HikariCP:5.1.0'
}

// build.gradle.kts (Kotlin DSL):
dependencies {
    implementation("org.postgresql:postgresql:42.7.11")
    implementation("com.zaxxer:HikariCP:5.1.0")
}

Spring Boot — автоконфигурация PostgreSQL



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


    org.postgresql
    postgresql
    runtime
# application.properties:
spring.datasource.url=jdbc:postgresql://localhost:5432/mydb
spring.datasource.username=postgres
spring.datasource.password=пароль
spring.datasource.driver-class-name=org.postgresql.Driver

# Пул соединений HikariCP (встроен в Spring Boot):
spring.datasource.hikari.maximum-pool-size=10
spring.datasource.hikari.minimum-idle=2

# JPA/Hibernate настройки:
spring.jpa.database-platform=org.hibernate.dialect.PostgreSQLDialect
spring.jpa.hibernate.ddl-auto=validate  # validate/update/create/create-drop
spring.jpa.show-sql=false               # true для отладки SQL

# application.yml альтернатива:
spring:
  datasource:
    url: jdbc:postgresql://localhost:5432/mydb
    username: postgres
    password: пароль
  jpa:
    database-platform: org.hibernate.dialect.PostgreSQLDialect

Часто задаваемые вопросы

Ошибка «Connection refused» при подключении к PostgreSQL из IDEA

Проверить по порядку: 1) PostgreSQL запущен? — sudo systemctl status postgresql (Linux) или Services (Windows). 2) Правильный порт? По умолчанию 5432. 3) PostgreSQL слушает нужный интерфейс? В postgresql.conf: listen_addresses = 'localhost' для локального или '*' для всех. 4) Firewall не блокирует порт? 5) Если PostgreSQL в Docker: проверить что порт прокинут -p 5432:5432 и хост localhost, не имя контейнера. Запустить psql -U postgres -h localhost в терминале — если работает, проблема в настройках IDEA.

Какую версию JDBC драйвера PostgreSQL использовать?

Версия JDBC-драйвера не обязана точно совпадать с версией сервера — PostgreSQL поддерживает обратную совместимость. Рекомендация: использовать актуальную версию драйвера; для старых серверов проверять матрицу совместимости pgJDBC отдельно. Актуальная стабильная версия на май 2026 года — 42.7.11. Зависимость Maven: <groupId>org.postgresql</groupId><artifactId>postgresql</artifactId><version>42.7.11</version>. В Spring Boot можно не указывать версию — BOM управляет ею автоматически через spring-boot-starter-data-jpa.

Как передать параметры SSL для подключения к облачной базе?

Облачные базы (Supabase, Neon, DigitalOcean) требуют SSL. В JDBC URL добавьте параметры: jdbc:postgresql://host:5432/db?sslmode=require. Для строгой проверки сертификата: sslmode=verify-full&sslrootcert=/path/to/ca.crt. В Spring Boot: spring.datasource.url=jdbc:postgresql://host:5432/db?sslmode=require. В Database tool IDEA: вкладка SSH/SSL → включить Use SSL. Или в Advanced добавить параметр sslmode = require.

Оцените статью
0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии
0
Оставьте комментарий! Напишите, что думаете по поводу статьи.x