Java Database Connectivity (JDBC)
na tomto cvičení se budeme zabývat JDBC, což je rozhranní (API) pro práci a přístup k databázím. Nejdříve si vytvořte jednoduchý příklad na otestování. Budete potřebovat nějakou databázi. V našem případě použijeme open source databáz PostgreSQL (https://www.postgresql.org/).
Obsahuje i administrátorskou část

Dále si vytvoříme jednoduchý příklad na základní otestování, kde zakomentujte řádky, které nechcete použít. Nastavíme správnou cestu k databázi, port, uživatele, heslo apod. a otestujeme.
package lab;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
public class PostgreSqlExample {
public static void main(String args[]) {
Connection con = null;
try {
Class.forName("org.postgresql.Driver");
con = DriverManager.getConnection("jdbc:postgresql://localhost:5432/java1", "uzivatel", "veslo");
Statement st = con.createStatement();
String sql;
sql = "CREATE TABLE IF NOT EXISTS person(id SERIAL PRIMARY KEY, first_name varchar(64), last_name varchar(64), email varchar(64))";
sql = "INSERT INTO person(first_name, last_name, email) values ('Martin','Noname','noname@vsb.cz')";
sql = "UPDATE person SET first_name = 'Martin', last_name = 'Prijmeni' WHERE id = 1";
sql = "DROP TABLE person ";
st.executeUpdate(sql);
sql = "SELECT id, first_name, last_name, email FROM person";
ResultSet rs = st.executeQuery(sql);
while(rs.next()){
int id = rs.getInt("id");
String first = rs.getString("first_name");
String last = rs.getString("last_name");
String email = rs.getString("email");
System.out.print("ID: " + id);
System.out.print(", First: " + first);
System.out.println(", Last: " + last);
System.out.println(", email: " + email);
}
rs.close();
} catch (Exception e) {
e.printStackTrace();
System.err.println(e.getClass().getName() + ": " + e.getMessage());
System.exit(0);
}
System.out.println("Opened database successfully");
}
}

Přidáme do souboru pom.xml požadavek na další balíček s rozhraním pro postgreSQL, pro balíčkovač maven. Pokud chcete jinou databázi, zvolte vhodný repozitář.
<!-- https://mvnrepository.com/artifact/org.postgresql/postgresql --> <dependency> <groupId>org.postgresql</groupId> <artifactId>postgresql</artifactId> <version>42.2.18</version> </dependency>
nebo
<!-- https://mvnrepository.com/artifact/org.postgresql/postgresql -->
<dependency>
<groupId>org.apache.derby</groupId>
<artifactId>derby</artifactId>
<version>10.15.2.0</version>
</dependency>
Pokud vše funguje, pustíme se do ukázkové aplikace z přednášky (tableview-jdbc-master.zip).

Následně zabudujeme tabulku TableView do svého projektu i se zapisováním výsledku z aplikace do databáze. Zatím stačí jen lokální varianta, pokud bychom chtěli, je možné nahradit lokální databázi tou globální a vše bude fungovat globálně.
Ve vaší aplikaci již samozřejmě použijte TableView přímo pomocí FXML a vše propojte.

Vše si pečlivě odzkoušejte.
V případě použití MySQL
Class.forName("com.mysql.cj.jdbc.Driver");
con=DriverManager.getConnection("jdbc:mysql://localhost/java1?useUnicode=true&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=UTC","user","veslo");
//maven
<dependency>
<groupid>mysql</groupid>
<artifactid>mysql-connector-java</artifactid>
<version>8.0.22</version>
</dependency>