From cca35df9f74ea03ea3180151a5d5c8c9c458c603 Mon Sep 17 00:00:00 2001
From: Dennis Eisold <de@itstall.de>
Date: Thu, 14 Nov 2019 14:09:13 +0100
Subject: [PATCH] =?UTF-8?q?Datenbank=20Verbindung=20hinzugef=C3=BCgt?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 .../de/telefonbuch/TelefonbuchController.java |  3 ++
 .../java/de/telefonbuch/model/Datenbank.java  | 47 +++++++++++++++++++
 src/main/java/module-info.java                |  1 +
 3 files changed, 51 insertions(+)
 create mode 100644 src/main/java/de/telefonbuch/model/Datenbank.java

diff --git a/src/main/java/de/telefonbuch/TelefonbuchController.java b/src/main/java/de/telefonbuch/TelefonbuchController.java
index 54b7bc5..4eb536f 100644
--- a/src/main/java/de/telefonbuch/TelefonbuchController.java
+++ b/src/main/java/de/telefonbuch/TelefonbuchController.java
@@ -1,5 +1,6 @@
 package de.telefonbuch;
 
+import de.telefonbuch.model.Datenbank;
 import de.telefonbuch.model.Fehler;
 import de.telefonbuch.model.Kontakt;
 import javafx.fxml.FXML;
@@ -119,6 +120,8 @@ public class TelefonbuchController {
 		assert btnNeuerEintrag != null : "fx:id=\"btnNeuerEintrag\" was not injected: check your FXML file 'telefonbuch.fxml'.";
 		assert btnLoeschen != null : "fx:id=\"btnLoeschen\" was not injected: check your FXML file 'telefonbuch.fxml'.";
 
+		Datenbank db = new Datenbank();
+
 		/* Wenn noch keine Einträge vorhanden sind, die Buttons deaktivieren */
 		if (App.eintraege.size() == 0) {
 			deaktiviereButtons(true);
diff --git a/src/main/java/de/telefonbuch/model/Datenbank.java b/src/main/java/de/telefonbuch/model/Datenbank.java
new file mode 100644
index 0000000..e5fae57
--- /dev/null
+++ b/src/main/java/de/telefonbuch/model/Datenbank.java
@@ -0,0 +1,47 @@
+package de.telefonbuch.model;
+
+import java.sql.Connection;
+import java.sql.DriverManager;
+import java.sql.SQLException;
+import java.sql.Statement;
+
+public class Datenbank {
+
+	Connection con;
+
+	public Datenbank() {
+		try {
+			this.connect();
+			this.createTables();
+		} catch (SQLException | ClassNotFoundException e) {
+			e.printStackTrace();
+		}
+	}
+
+	private void createTables() throws SQLException {
+		Statement stmt = this.con.createStatement();
+		String createTable = "CREATE TABLE IF NOT EXISTS \"kontakte\" (" +
+				"id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, " +
+				"vorname VARCHAR(50) NULL, " +
+				"nachname VARCHAR(50) NULL, " +
+				"strasse VARCHAR(50) NULL, " +
+				"hnr VARCHAR(10) NULL, " +
+				"plz VARCHAR(5) NULL, " +
+				"ort VARCHAR(50) NULL, " +
+				"telefon VARCHAR(30) NULL" +
+				");";
+		System.out.println(stmt.execute(createTable));
+	}
+
+	/**
+	 * Verbindung zur Datenbank aufbauen
+	 */
+	public void connect() throws ClassNotFoundException, SQLException {
+		Class.forName("org.sqlite.JDBC");
+
+		String datenbankdatei = "c:\\temp\\telefonbuch.sqlite";
+
+		this.con = DriverManager.getConnection("jdbc:sqlite:" + datenbankdatei);
+		System.out.println("Erfolgreich mit Datenbank verbunden.");
+	}
+}
diff --git a/src/main/java/module-info.java b/src/main/java/module-info.java
index f18ba8f..257d39c 100644
--- a/src/main/java/module-info.java
+++ b/src/main/java/module-info.java
@@ -2,6 +2,7 @@ module de.telefonbuch {
     requires javafx.controls;
     requires javafx.fxml;
 	requires java.desktop;
+	requires java.sql;
 
 	opens de.telefonbuch to javafx.fxml;
     exports de.telefonbuch;
-- 
GitLab