From e9f8ee25fa11d8201f00f9cfe92d89d34c4790b6 Mon Sep 17 00:00:00 2001 From: Tobin Rosenau Date: Thu, 14 Dec 2017 22:19:56 +0100 Subject: [PATCH] added configfile --- config.xml | 5 +++++ src/Database.java | 17 +++++++++-------- src/Server.java | 32 ++++++++++++++++++++++++++++---- 3 files changed, 42 insertions(+), 12 deletions(-) create mode 100644 config.xml diff --git a/config.xml b/config.xml new file mode 100644 index 0000000..1642472 --- /dev/null +++ b/config.xml @@ -0,0 +1,5 @@ + + +6001 +telefonbuch.db + diff --git a/src/Database.java b/src/Database.java index 92c37cd..4a60874 100644 --- a/src/Database.java +++ b/src/Database.java @@ -5,9 +5,9 @@ import java.sql.*; public class Database { - - public Database() throws FileNotFoundException, UnsupportedEncodingException { - File db = new File("telefonbuch.db"); + String sqlPath; + public Database(String dbPath) throws FileNotFoundException, UnsupportedEncodingException { + File db = new File(dbPath); if (!db.exists()) { try { db.createNewFile(); @@ -16,6 +16,7 @@ public Database() throws FileNotFoundException, UnsupportedEncodingException { e1.printStackTrace(); } } + sqlPath = "jdbc:sqlite:"+dbPath; } public void createTable() { @@ -23,7 +24,7 @@ public void createTable() { Statement stmt = null; try { Class.forName("org.sqlite.JDBC"); - c = DriverManager.getConnection("jdbc:sqlite:telefonbuch.db"); + c = DriverManager.getConnection(sqlPath); System.out.println("Datenbank erfolgreich geöffnet"); stmt = c.createStatement(); @@ -48,7 +49,7 @@ public String readTable() { try { //Connect to the Database Class.forName("org.sqlite.JDBC"); - c = DriverManager.getConnection("jdbc:sqlite:telefonbuch.db"); + c = DriverManager.getConnection(sqlPath); c.setAutoCommit(false); System.out.println("Datenbank erfolgreich geöffnet"); stmt = c.prepareStatement("SELECT * FROM Telefonbuch;"); @@ -116,7 +117,7 @@ public String deleteItem(int id) { try { //Connect to the Database Class.forName("org.sqlite.JDBC"); - c = DriverManager.getConnection("jdbc:sqlite:telefonbuch.db"); + c = DriverManager.getConnection(sqlPath); c.setAutoCommit(false); System.out.println("Datenbank erfolgreich geöffnet"); //Run SQLInjection safe Delete Command @@ -144,7 +145,7 @@ public String searchItem(String querry) { try { //Connect to the Database Class.forName("org.sqlite.JDBC"); - c = DriverManager.getConnection("jdbc:sqlite:telefonbuch.db"); + c = DriverManager.getConnection(sqlPath); c.setAutoCommit(false); System.out.println("Datenbank erfolgreich geöffnet"); //Run SQLInsertion safe Search command @@ -224,7 +225,7 @@ public String createKontakt(String vorname, String nachname, String strasse, Str try { //Connect to the Database Class.forName("org.sqlite.JDBC"); - c = DriverManager.getConnection("jdbc:sqlite:telefonbuch.db"); + c = DriverManager.getConnection(sqlPath); c.setAutoCommit(false); System.out.println("Datenbank erfolgreich geöffnet"); //Create the Kontakt diff --git a/src/Server.java b/src/Server.java index caecf30..29ec733 100644 --- a/src/Server.java +++ b/src/Server.java @@ -1,5 +1,6 @@ import java.io.BufferedReader; +import java.io.File; import java.io.IOException; import java.io.InputStreamReader; import java.io.PrintWriter; @@ -7,16 +8,39 @@ import java.net.ServerSocket; import java.net.Socket; +import javax.xml.parsers.DocumentBuilder; +import javax.xml.parsers.DocumentBuilderFactory; + +import org.w3c.dom.Document; import org.json.*; public class Server { static ServerSocket anschluss; public static void main(String[] args) throws IOException { - - // Start ServerSocket on port 6000 + int port = 6000; + String dbPath = "telefonbuch.db"; + //Read config file + try { + File file = null; + file = new File("config.xml"); + DocumentBuilderFactory documentBuilderFactory = DocumentBuilderFactory + .newInstance(); + DocumentBuilder documentBuilder = documentBuilderFactory.newDocumentBuilder(); + Document document = documentBuilder.parse(file); + try { + port = Integer.parseInt(document.getElementsByTagName("port").item(0).getTextContent()); + }catch(Exception e) { + System.out.println("Bitte Überprüfen sie ob in der Konfigurationsdatei eine Zahl als Port eingegeben ist."); + } + dbPath = document.getElementsByTagName("database-path").item(0).getTextContent(); + }catch(Exception e) { + e.printStackTrace(); + } + + // Start ServerSocket try { - anschluss = new ServerSocket(6000); + anschluss = new ServerSocket(port); } catch (BindException e) { e.printStackTrace(); } @@ -32,7 +56,7 @@ public void run() { } } }); - Database dataBase = new Database(); + Database dataBase = new Database(dbPath); // Starts an endless loop for listening for Client Input while (true) { // Start listening