JDBC w 5 minut

JDBC (Java Database Connector) to niskopoziomowe operacje na bazie danych przy pomocy sterownika producenta.
Daje większe możliwości niż popularne frameworki wykorzystujące mapowanie obiektowo-relacyjne, jednak obsługa zapytań odbywa się większym nakładem pracy. Warto zacząć od nich nauke, bo bywają przydatne tam gdzie ORM nie dają rady 🙂

Tworzymy klasę  do połączenia z bazą stosując wzorzec Singleton. Dlaczego zastosujemy ten wzorzec? Potrzebujemy tylko jednej instancji tego obiektu, więc tworzymy prywatny konstruktor.

Obiekt stworzymy przy użyciu statycznej (czyli nie potrzebującej obiektu) metody. Tworzymy też warunek, w którym sprawdzamy czy obiekt istnieje.

Wczytujemy parametry połączenia z naszego pliku db.properties* do zmiennych przy użyciu FileReader

I rejestrujemy sterownik przy pomocy Class.forName oraz przekazujemy DriverManager.getConnection ze szczegółami połączenia do obiektu connection.

Zwracamy obiekt

*zawartość pliku db.properties

Ważne: nie zapominamy o dołączeniu sterownika bazy Oracle w IDE Intelij IDEA.
https://wilamowski.it/index.php/2019/07/28/how-to-import-jdbc-oracle-driver-to-intelij-idea-project-ojdbc6-jar/

 

Przejdźmy do klasy testowej. Tworzymy obiekt  connection przy pomocy metody statycznej:

Do wykonania zapytania SQL i połączenia z bazą tworzymy obiekt statement (interfejs Statement, java.sql). Potrzebny nam jest do wysłania zapytania do bazy. PS Jeżeli potrzebujemy zapytań zparametryzowanych lub zapytanie będzie używane wielokrotnie warto zainteresować się PreparedStatment.

Metoda executeQuery zwraca wynik zapytania. W tym samym momencie może być otwarty jeden Statement i jeden ResultSet.

Mapujemy encje i wyświetlamy rezultat wiersz po wierszu (.next() zwraca wartość logiczną)


 —————————————————–

Projekt przedstawiający przykład połączenia z plikiem parametrów wzorcem singleton i prostym zapytaniem. Myślę, że dobrze to ukazuje idee bez zbędnego kodu

https://github.com/connoisseur0/JDBC-example

Source:
1. https://docs.oracle.com/javase/tutorial/jdbc/basics/processingsqlstatements.html#creating_statements
2. https://docs.oracle.com/javase/7/docs/api/java/sql/Statement.html