Управление на данни с JavaFX

Графичните приложения, изградени с JavaFX, често се нуждаят от съхранение и извличане на информация – потребители, настройки, резултати или други структурирани данни. Тъй като JavaFX се фокусира единствено върху изграждането на потребителския интерфейс, за работата с бази данни се използват стандартните механизми на Java и външни технологии.

За тази цел най-често се комбинират JDBC като универсален интерфейс за достъп до бази данни и конкретна система за управление на бази данни, например H2. Тази комбинация позволява ясно разделение между визуалната част на приложението и логиката за работа с данни.

image

JDBC слой – връзка между Java и базата данни

JDBC (Java Database Connectivity) представлява стандартен интерфейс за работа с релационни бази данни в Java. Той дефинира начин за създаване на връзка, изпълнение на SQL заявки и обработка на резултатите, независимо от конкретната база данни.

Чрез JDBC приложението не комуникира директно с базата, а използва драйвер, който превежда заявките към конкретната система за управление на бази данни. Това позволява смяна на базата без промяна на бизнес логиката.

Основните обекти, с които работи JDBC, са:

  • Connection – активна връзка към базата данни
  • Statement / PreparedStatement – изпълнение на SQL заявки
  • ResultSet – резултат от SELECT заявка

H2 – вградена релационна база данни

За настолни Java приложения често се използват леки вградени бази данни. H2 е такава база, реализирана изцяло на Java, която се използва чрез JDBC и поддържа стандартен SQL синтаксис.

H2 може да работи във файл, което означава, че данните се съхраняват локално и се запазват между стартиранията на приложението. Това я прави подходяща за JavaFX приложения без нужда от външен сървър.

За да бъде използвана в Maven проект, е необходимо да се добави зависимостта към H2 JDBC драйвера.

<dependency>
    <groupId>com.h2database</groupId>
    <artifactId>h2</artifactId>
    <version>2.4.240</version>
</dependency>

Създаване на връзка към базата данни

Връзката към базата се реализира в отделен клас, който централизира конфигурацията и позволява повторна употреба:

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;

public class DatabaseConnection {

    private static final String URL = "jdbc:h2:./data/librarydb";
    private static final String USER = "sa";
    private static final String PASSWORD = "";

    public static Connection getConnection() throws SQLException {
        return DriverManager.getConnection(URL, USER, PASSWORD);
    }
}

Тук се задават:

  • URL – пътя до H2 база в локален файл (./data/librarydb)
  • USER и PASSWORD – стандартни стойности за H2
  • Методът getConnection() връща готова връзка за използване от DAO или други класове.

При успешно стартиране, трябва да се визуализира следният прозорец:

Screenshot 2026-02-03 223238


This site uses Just the Docs, a documentation theme for Jekyll.