diff --git a/.gitignore b/.gitignore
index 358487f..881f473 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,3 +1,4 @@
*.iml
/target
-.idea
\ No newline at end of file
+.idea
+config.json
diff --git a/config.json.example b/config.json.example
new file mode 100644
index 0000000..90f45b2
--- /dev/null
+++ b/config.json.example
@@ -0,0 +1,9 @@
+{
+ "database": {
+ "hostname": "localhost",
+ "port": 3306,
+ "database": "itech",
+ "username": "itech",
+ "password": "123456"
+ }
+}
\ No newline at end of file
diff --git a/pom.xml b/pom.xml
index 5821b30..2418572 100644
--- a/pom.xml
+++ b/pom.xml
@@ -137,6 +137,7 @@
100
${project.build.sourceEncoding}
true
+ false
diff --git a/src/main/java/de/hsel/itech/config/Configuration.java b/src/main/java/de/hsel/itech/config/Configuration.java
new file mode 100644
index 0000000..3c2b440
--- /dev/null
+++ b/src/main/java/de/hsel/itech/config/Configuration.java
@@ -0,0 +1,42 @@
+package de.hsel.itech.config;
+
+import com.google.gson.Gson;
+import lombok.EqualsAndHashCode;
+import lombok.Getter;
+import lombok.ToString;
+
+import java.io.File;
+import java.io.FileNotFoundException;
+import java.io.FileReader;
+
+/**
+ * @author Johannes Theiner
+ * @version 0.1
+ * @since 0.1
+ */
+
+@ToString
+@EqualsAndHashCode
+public class Configuration {
+
+ private static final String filename = "config.json";
+
+ @Getter
+ private Database database;
+
+
+
+ public static Configuration get() {
+ Gson gson = new Gson();
+
+ FileReader reader = null;
+ try {
+ reader = new FileReader(new File(filename));
+ } catch (FileNotFoundException e) {
+ e.printStackTrace();
+ }
+ assert reader != null;
+ return gson.fromJson(reader, Configuration.class);
+ }
+
+}
\ No newline at end of file
diff --git a/src/main/java/de/hsel/itech/config/Database.java b/src/main/java/de/hsel/itech/config/Database.java
new file mode 100644
index 0000000..2e78599
--- /dev/null
+++ b/src/main/java/de/hsel/itech/config/Database.java
@@ -0,0 +1,23 @@
+package de.hsel.itech.config;
+
+import lombok.EqualsAndHashCode;
+import lombok.Getter;
+import lombok.ToString;
+
+/**
+ * @author Johannes Theiner
+ * @version 0.1
+ * @since 0.1
+ */
+
+@Getter
+@ToString
+@EqualsAndHashCode
+public class Database {
+
+ String hostname;
+ int port;
+ String database;
+ String username;
+ String password;
+}
\ No newline at end of file
diff --git a/src/main/java/de/hsel/itech/db/Database.java b/src/main/java/de/hsel/itech/db/Database.java
new file mode 100644
index 0000000..f624cb6
--- /dev/null
+++ b/src/main/java/de/hsel/itech/db/Database.java
@@ -0,0 +1,57 @@
+package de.hsel.itech.db;
+
+import de.hsel.itech.config.Configuration;
+import org.jetbrains.annotations.Nullable;
+
+import java.sql.*;
+
+/**
+ *
+ *
+ * @author Johannes Theiner
+ * @version 0.1
+ * @since 0.1
+ */
+public class Database {
+
+ public Database() {
+
+ }
+
+ @Nullable
+ private Connection getConnection() {
+ Configuration config = Configuration.get();
+ try {
+ return DriverManager.getConnection("jdbc:mariadb://" + config.getDatabase().getHostname() + ":" + config.getDatabase().getPort() + "/" + config.getDatabase().getDatabase(), config.getDatabase().getUsername(), config.getDatabase().getPassword());
+
+ } catch (SQLException e) {
+ e.printStackTrace();
+ }
+ return null;
+ }
+
+ public String getHello() {
+ Connection connection = getConnection();
+
+ String hello = "";
+ try {
+ assert connection != null;
+ PreparedStatement statement = connection.prepareStatement("SELECT * FROM test WHERE id = 1");
+ ResultSet resultSet = statement.executeQuery();
+ resultSet.next();
+ hello = resultSet.getString("hello");
+
+ connection.close();
+ } catch (SQLException e) {
+ e.printStackTrace();
+ }
+
+ return hello;
+
+ }
+
+
+
+
+
+}
\ No newline at end of file
diff --git a/src/main/java/de/hsel/itech/db/pojo/Address.java b/src/main/java/de/hsel/itech/db/pojo/Address.java
new file mode 100644
index 0000000..f986fbf
--- /dev/null
+++ b/src/main/java/de/hsel/itech/db/pojo/Address.java
@@ -0,0 +1,23 @@
+package de.hsel.itech.db.pojo;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+
+/**
+ * @author Johannes Theiner
+ * @version 0.1
+ * @since 0.1
+ */
+
+@Data
+@AllArgsConstructor
+public class Address {
+
+ private Customer customer;
+ private long id;
+ private String name;
+ private String street;
+ private String number;
+ private int zipCode;
+ private String city;
+}
\ No newline at end of file
diff --git a/src/main/java/de/hsel/itech/db/pojo/Author.java b/src/main/java/de/hsel/itech/db/pojo/Author.java
new file mode 100644
index 0000000..507893e
--- /dev/null
+++ b/src/main/java/de/hsel/itech/db/pojo/Author.java
@@ -0,0 +1,19 @@
+package de.hsel.itech.db.pojo;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+
+/**
+ * @author Johannes Theiner
+ * @version 0.1
+ * @since 0.1
+ */
+
+@Data
+@AllArgsConstructor
+public class Author {
+
+ private long id;
+ private String name;
+
+}
diff --git a/src/main/java/de/hsel/itech/db/pojo/Book.java b/src/main/java/de/hsel/itech/db/pojo/Book.java
new file mode 100644
index 0000000..79160e1
--- /dev/null
+++ b/src/main/java/de/hsel/itech/db/pojo/Book.java
@@ -0,0 +1,34 @@
+package de.hsel.itech.db.pojo;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+
+import java.time.Year;
+
+/**
+ * @author Johannes Theiner
+ * @version 0.1
+ * @since 0.1
+ */
+
+@Data
+@AllArgsConstructor
+public class Book {
+
+ private int isbn;
+ private Author author;
+ private Publisher publisher;
+ private Category category;
+ private String title;
+ private Year year;
+
+ /**
+ * saved in cents
+ */
+ private int price;
+ private String description;
+ private String image;
+
+
+
+}
\ No newline at end of file
diff --git a/src/main/java/de/hsel/itech/db/pojo/Category.java b/src/main/java/de/hsel/itech/db/pojo/Category.java
new file mode 100644
index 0000000..685ca42
--- /dev/null
+++ b/src/main/java/de/hsel/itech/db/pojo/Category.java
@@ -0,0 +1,19 @@
+package de.hsel.itech.db.pojo;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+
+/**
+ * @author Johannes Theiner
+ * @version 0.1
+ * @since 0.1
+ */
+
+@Data
+@AllArgsConstructor
+public class Category {
+
+ private int id;
+ private String name;
+ private String image;
+}
diff --git a/src/main/java/de/hsel/itech/db/pojo/CreditCardPayment.java b/src/main/java/de/hsel/itech/db/pojo/CreditCardPayment.java
new file mode 100644
index 0000000..0a19e81
--- /dev/null
+++ b/src/main/java/de/hsel/itech/db/pojo/CreditCardPayment.java
@@ -0,0 +1,24 @@
+package de.hsel.itech.db.pojo;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+
+import java.time.LocalDate;
+
+/**
+ * @author Johannes Theiner
+ * @version 0.1
+ * @since 0.1
+ **/
+
+@Data
+@AllArgsConstructor
+public class CreditCardPayment {
+
+ private long id;
+ private Customer customer;
+ private int number;
+ private String owner;
+ private LocalDate expiration;
+ private int checksum;
+}
\ No newline at end of file
diff --git a/src/main/java/de/hsel/itech/db/pojo/Customer.java b/src/main/java/de/hsel/itech/db/pojo/Customer.java
new file mode 100644
index 0000000..b06ab30
--- /dev/null
+++ b/src/main/java/de/hsel/itech/db/pojo/Customer.java
@@ -0,0 +1,21 @@
+package de.hsel.itech.db.pojo;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+
+/**
+ * @author Johannes Theiner
+ * @version 0.1
+ * @since 0.1
+ */
+
+@Data
+@AllArgsConstructor
+public class Customer {
+
+ private long id;
+ private String email;
+ private String name;
+ private String password;
+ private boolean admin;
+}
\ No newline at end of file
diff --git a/src/main/java/de/hsel/itech/db/pojo/DebitCardPayment.java b/src/main/java/de/hsel/itech/db/pojo/DebitCardPayment.java
new file mode 100644
index 0000000..3741404
--- /dev/null
+++ b/src/main/java/de/hsel/itech/db/pojo/DebitCardPayment.java
@@ -0,0 +1,21 @@
+package de.hsel.itech.db.pojo;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+
+/**
+ * @author Johannes Theiner
+ * @version 0.1
+ * @since 0.1
+ **/
+
+@Data
+@AllArgsConstructor
+public class DebitCardPayment {
+
+ private long id;
+ private Customer customer;
+ private String iban;
+ private String bic;
+ private String owner;
+}
\ No newline at end of file
diff --git a/src/main/java/de/hsel/itech/db/pojo/InvoicePayment.java b/src/main/java/de/hsel/itech/db/pojo/InvoicePayment.java
new file mode 100644
index 0000000..acf8a5a
--- /dev/null
+++ b/src/main/java/de/hsel/itech/db/pojo/InvoicePayment.java
@@ -0,0 +1,18 @@
+package de.hsel.itech.db.pojo;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+
+/**
+ * @author Johannes Theiner
+ * @version 0.1
+ * @since 0.1
+ **/
+
+@Data
+@AllArgsConstructor
+public class InvoicePayment {
+
+ private long id;
+ private Customer customer;
+}
\ No newline at end of file
diff --git a/src/main/java/de/hsel/itech/db/pojo/Order.java b/src/main/java/de/hsel/itech/db/pojo/Order.java
new file mode 100644
index 0000000..c0f8a14
--- /dev/null
+++ b/src/main/java/de/hsel/itech/db/pojo/Order.java
@@ -0,0 +1,29 @@
+package de.hsel.itech.db.pojo;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+
+import java.time.LocalDateTime;
+
+
+/**
+ * @author Johannes Theiner
+ * @version 0.1
+ * @since 0.1
+ **/
+
+@Data
+@AllArgsConstructor
+public class Order {
+
+ private long id;
+ private LocalDateTime date;
+ private Book book;
+
+ /**
+ * price in cents
+ */
+ private int price;
+ private PaymentType paymentType;
+ private Address address;
+}
\ No newline at end of file
diff --git a/src/main/java/de/hsel/itech/db/pojo/PayPalPayment.java b/src/main/java/de/hsel/itech/db/pojo/PayPalPayment.java
new file mode 100644
index 0000000..e5804ac
--- /dev/null
+++ b/src/main/java/de/hsel/itech/db/pojo/PayPalPayment.java
@@ -0,0 +1,20 @@
+package de.hsel.itech.db.pojo;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+
+/**
+ * @author Johannes Theiner
+ * @version 0.1
+ * @since 0.1
+ **/
+
+@Data
+@AllArgsConstructor
+public class PayPalPayment {
+
+ private long id;
+ private Customer customer;
+ private String email;
+ private String authCode;
+}
\ No newline at end of file
diff --git a/src/main/java/de/hsel/itech/db/pojo/PaymentType.java b/src/main/java/de/hsel/itech/db/pojo/PaymentType.java
new file mode 100644
index 0000000..5f7e519
--- /dev/null
+++ b/src/main/java/de/hsel/itech/db/pojo/PaymentType.java
@@ -0,0 +1,18 @@
+package de.hsel.itech.db.pojo;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+
+/**
+ * @author Johannes Theiner
+ * @version 0.1
+ * @since 0.1
+ **/
+
+@Data
+@AllArgsConstructor
+public class PaymentType {
+
+ private long id;
+ private String name;
+}
\ No newline at end of file
diff --git a/src/main/java/de/hsel/itech/db/pojo/Publisher.java b/src/main/java/de/hsel/itech/db/pojo/Publisher.java
new file mode 100644
index 0000000..c036d86
--- /dev/null
+++ b/src/main/java/de/hsel/itech/db/pojo/Publisher.java
@@ -0,0 +1,18 @@
+package de.hsel.itech.db.pojo;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+
+/**
+ * @author Johannes Theiner
+ * @version 0.1
+ * @since 0.1
+ */
+
+@Data
+@AllArgsConstructor
+public class Publisher {
+
+ private long id;
+ private String name;
+}
\ No newline at end of file
diff --git a/src/main/java/de/hsel/itech/db/pojo/ShoppingCart.java b/src/main/java/de/hsel/itech/db/pojo/ShoppingCart.java
new file mode 100644
index 0000000..375d01a
--- /dev/null
+++ b/src/main/java/de/hsel/itech/db/pojo/ShoppingCart.java
@@ -0,0 +1,20 @@
+package de.hsel.itech.db.pojo;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+
+/**
+ * @author Johannes Theiner
+ * @version 0.1
+ * @since 0.1
+ **/
+
+@Data
+@AllArgsConstructor
+public class ShoppingCart {
+
+ private long id;
+ private Customer customer;
+ private Book article;
+ private int count;
+}
\ No newline at end of file
diff --git a/src/main/java/de/hsel/itech/servlet/Database.java b/src/main/java/de/hsel/itech/servlet/Database.java
new file mode 100644
index 0000000..7855d1f
--- /dev/null
+++ b/src/main/java/de/hsel/itech/servlet/Database.java
@@ -0,0 +1,40 @@
+package de.hsel.itech.servlet;
+
+import javax.servlet.http.HttpServlet;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
+import java.io.PrintWriter;
+
+/**
+ * @author Johannes Theiner
+ * @version 0.1
+ * @since 0.1
+ **/
+public class Database extends HttpServlet {
+
+ private static final long serialVersionUID = 15679036734L;
+
+ /**
+ * doGet.
+ *
+ * @param req Request
+ * @param resp Response
+ * @throws IOException failed
+ */
+ @Override
+ protected void doGet(final HttpServletRequest req, final HttpServletResponse resp)
+ throws IOException {
+
+ resp.setContentType("text/html");
+ final PrintWriter out = resp.getWriter();
+ out.println("");
+ out.println("");
+ out.println("Hallo Welt!");
+ out.println("");
+ out.println("");
+ out.println("" + new de.hsel.itech.db.Database().getHello() + "
");
+ out.println("");
+ out.println("");
+ }
+}
\ No newline at end of file
diff --git a/src/main/java/de/hsel/itech/HelloWorld.java b/src/main/java/de/hsel/itech/servlet/HelloWorld.java
similarity index 76%
rename from src/main/java/de/hsel/itech/HelloWorld.java
rename to src/main/java/de/hsel/itech/servlet/HelloWorld.java
index 0d49078..9aa5a44 100644
--- a/src/main/java/de/hsel/itech/HelloWorld.java
+++ b/src/main/java/de/hsel/itech/servlet/HelloWorld.java
@@ -1,8 +1,9 @@
-package de.hsel.itech;
+package de.hsel.itech.servlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
+import java.io.File;
import java.io.IOException;
import java.io.PrintWriter;
@@ -30,12 +31,15 @@ public class HelloWorld extends HttpServlet {
resp.setContentType("text/html");
final PrintWriter out = resp.getWriter();
+ out.println("");
out.println("");
out.println("");
out.println("Hallo Welt!");
out.println("");
out.println("");
- out.println("Hallo Ostfriesland!
");
+ out.println("Hallo Ostfriesland!
");
+ out.println("" + System.getProperty("catalina.base") + "
");
+ out.println("" + new File("").getAbsolutePath() + "
");
out.println("");
out.println("");
}
diff --git a/src/main/webapp/WEB-INF/web.xml b/src/main/webapp/WEB-INF/web.xml
index 7f3e851..391a545 100644
--- a/src/main/webapp/WEB-INF/web.xml
+++ b/src/main/webapp/WEB-INF/web.xml
@@ -7,11 +7,21 @@
helloWorld
- de.hsel.itech.HelloWorld
+ de.hsel.itech.servlet.HelloWorld
+
+
+
+ database
+ de.hsel.itech.servlet.Database
helloWorld
/index
+
+
+ database
+ /db
+
\ No newline at end of file