diff --git a/eclipse-workspace/AEBI2/.classpath b/eclipse-workspace/AEBI2/.classpath new file mode 100644 index 0000000000000000000000000000000000000000..67243c7a042d6cef43b348aedc01008bdf4f981f --- /dev/null +++ b/eclipse-workspace/AEBI2/.classpath @@ -0,0 +1,17 @@ +<?xml version="1.0" encoding="UTF-8"?> +<classpath> + <classpathentry exported="true" kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-10"> + <attributes> + <attribute name="module" value="true"/> + </attributes> + </classpathentry> + <classpathentry kind="src" path="src/main/java"/> + <classpathentry exported="true" kind="con" path="org.eclipse.jst.j2ee.internal.web.container"/> + <classpathentry kind="con" path="org.eclipse.jst.j2ee.internal.module.container"/> + <classpathentry kind="con" path="org.eclipse.jst.server.core.container/org.eclipse.jst.server.tomcat.runtimeTarget/Apache Tomcat v10.0"> + <attributes> + <attribute name="owner.project.facets" value="jst.web"/> + </attributes> + </classpathentry> + <classpathentry kind="output" path="build/classes"/> +</classpath> diff --git a/eclipse-workspace/AEBI2/.project b/eclipse-workspace/AEBI2/.project new file mode 100644 index 0000000000000000000000000000000000000000..a7d68d95b1520b36d241326beaf7f67d9b9aeddf --- /dev/null +++ b/eclipse-workspace/AEBI2/.project @@ -0,0 +1,31 @@ +<?xml version="1.0" encoding="UTF-8"?> +<projectDescription> + <name>AEBI2</name> + <comment></comment> + <projects> + </projects> + <buildSpec> + <buildCommand> + <name>org.eclipse.jdt.core.javabuilder</name> + <arguments> + </arguments> + </buildCommand> + <buildCommand> + <name>org.eclipse.wst.common.project.facet.core.builder</name> + <arguments> + </arguments> + </buildCommand> + <buildCommand> + <name>org.eclipse.wst.validation.validationbuilder</name> + <arguments> + </arguments> + </buildCommand> + </buildSpec> + <natures> + <nature>org.eclipse.jem.workbench.JavaEMFNature</nature> + <nature>org.eclipse.wst.common.modulecore.ModuleCoreNature</nature> + <nature>org.eclipse.wst.common.project.facet.core.nature</nature> + <nature>org.eclipse.jdt.core.javanature</nature> + <nature>org.eclipse.wst.jsdt.core.jsNature</nature> + </natures> +</projectDescription> diff --git a/eclipse-workspace/AEBI2/.settings/.jsdtscope b/eclipse-workspace/AEBI2/.settings/.jsdtscope new file mode 100644 index 0000000000000000000000000000000000000000..81672d474a1b23950cfa33b2d582c594110d8dee --- /dev/null +++ b/eclipse-workspace/AEBI2/.settings/.jsdtscope @@ -0,0 +1,12 @@ +<?xml version="1.0" encoding="UTF-8"?> +<classpath> + <classpathentry excluding="**/bower_components/*|**/node_modules/*|**/*.min.js" kind="src" path="src/main/webapp"/> + <classpathentry kind="con" path="org.eclipse.wst.jsdt.launching.JRE_CONTAINER"/> + <classpathentry kind="con" path="org.eclipse.wst.jsdt.launching.WebProject"> + <attributes> + <attribute name="hide" value="true"/> + </attributes> + </classpathentry> + <classpathentry kind="con" path="org.eclipse.wst.jsdt.launching.baseBrowserLibrary"/> + <classpathentry kind="output" path=""/> +</classpath> diff --git a/eclipse-workspace/AEBI2/.settings/org.eclipse.jdt.core.prefs b/eclipse-workspace/AEBI2/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 0000000000000000000000000000000000000000..f18fd9db3b4bc7f8ce8cdd2bd5432a638b2295b8 --- /dev/null +++ b/eclipse-workspace/AEBI2/.settings/org.eclipse.jdt.core.prefs @@ -0,0 +1,8 @@ +eclipse.preferences.version=1 +org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled +org.eclipse.jdt.core.compiler.codegen.targetPlatform=10 +org.eclipse.jdt.core.compiler.compliance=10 +org.eclipse.jdt.core.compiler.problem.assertIdentifier=error +org.eclipse.jdt.core.compiler.problem.enumIdentifier=error +org.eclipse.jdt.core.compiler.release=enabled +org.eclipse.jdt.core.compiler.source=10 diff --git a/eclipse-workspace/AEBI2/.settings/org.eclipse.wst.common.component b/eclipse-workspace/AEBI2/.settings/org.eclipse.wst.common.component new file mode 100644 index 0000000000000000000000000000000000000000..7f1505bacf197204bbf6d57e13da48fc27c8a635 --- /dev/null +++ b/eclipse-workspace/AEBI2/.settings/org.eclipse.wst.common.component @@ -0,0 +1,20 @@ +<?xml version="1.0" encoding="UTF-8"?><project-modules id="moduleCoreId" project-version="1.5.0"> + + + <wb-module deploy-name="AEBI"> + + + <wb-resource deploy-path="/" source-path="/src/main/webapp" tag="defaultRootSource"/> + + + <wb-resource deploy-path="/WEB-INF/classes" source-path="/src/main/java"/> + + + <property name="java-output-path" value="/AEBI/build/classes"/> + <property name="context-root" value="AEBI"/> + + + </wb-module> + + +</project-modules> diff --git a/eclipse-workspace/AEBI2/.settings/org.eclipse.wst.common.project.facet.core.xml b/eclipse-workspace/AEBI2/.settings/org.eclipse.wst.common.project.facet.core.xml new file mode 100644 index 0000000000000000000000000000000000000000..d27bdd816417b84b1e1499bddeba33ad6e15aecb --- /dev/null +++ b/eclipse-workspace/AEBI2/.settings/org.eclipse.wst.common.project.facet.core.xml @@ -0,0 +1,10 @@ +<?xml version="1.0" encoding="UTF-8"?> +<faceted-project> + <runtime name="Apache Tomcat v10.0"/> + <fixed facet="java"/> + <fixed facet="wst.jsdt.web"/> + <fixed facet="jst.web"/> + <installed facet="java" version="10"/> + <installed facet="jst.web" version="4.0"/> + <installed facet="wst.jsdt.web" version="1.0"/> +</faceted-project> diff --git a/eclipse-workspace/AEBI2/.settings/org.eclipse.wst.jsdt.ui.superType.container b/eclipse-workspace/AEBI2/.settings/org.eclipse.wst.jsdt.ui.superType.container new file mode 100644 index 0000000000000000000000000000000000000000..3bd5d0a4803967bc0bf72a7dd66d7e292ed2e586 --- /dev/null +++ b/eclipse-workspace/AEBI2/.settings/org.eclipse.wst.jsdt.ui.superType.container @@ -0,0 +1 @@ +org.eclipse.wst.jsdt.launching.baseBrowserLibrary \ No newline at end of file diff --git a/eclipse-workspace/AEBI2/.settings/org.eclipse.wst.jsdt.ui.superType.name b/eclipse-workspace/AEBI2/.settings/org.eclipse.wst.jsdt.ui.superType.name new file mode 100644 index 0000000000000000000000000000000000000000..05bd71b6ec2c1982d1e8a5653073281994564ae8 --- /dev/null +++ b/eclipse-workspace/AEBI2/.settings/org.eclipse.wst.jsdt.ui.superType.name @@ -0,0 +1 @@ +Window \ No newline at end of file diff --git a/eclipse-workspace/AEBI2/src/main/webapp/META-INF/MANIFEST.MF b/eclipse-workspace/AEBI2/src/main/webapp/META-INF/MANIFEST.MF new file mode 100644 index 0000000000000000000000000000000000000000..5e9495128c0376427420c4189993b3851770b702 --- /dev/null +++ b/eclipse-workspace/AEBI2/src/main/webapp/META-INF/MANIFEST.MF @@ -0,0 +1,3 @@ +Manifest-Version: 1.0 +Class-Path: + diff --git a/eclipse-workspace/AEBI2/src/main/webapp/WEB-INF/lib/postgresql-42.2.20.jar b/eclipse-workspace/AEBI2/src/main/webapp/WEB-INF/lib/postgresql-42.2.20.jar new file mode 100644 index 0000000000000000000000000000000000000000..86a2f2a919f4f12fda8197cdc890466efdebb4dc Binary files /dev/null and b/eclipse-workspace/AEBI2/src/main/webapp/WEB-INF/lib/postgresql-42.2.20.jar differ diff --git a/eclipse-workspace/AEBI2/src/main/webapp/books/create.jsp b/eclipse-workspace/AEBI2/src/main/webapp/books/create.jsp new file mode 100644 index 0000000000000000000000000000000000000000..262b4c56e07df2cdca75b9ce8020f49d8e765474 --- /dev/null +++ b/eclipse-workspace/AEBI2/src/main/webapp/books/create.jsp @@ -0,0 +1,44 @@ +<%@ page language="java" contentType="text/html; charset=UTF-8" + pageEncoding="UTF-8"%> +<%@ page import ="java.sql.Connection" %> +<%@ page import ="java.sql.DriverManager" %> +<%@ page import ="java.sql.PreparedStatement" %> +<%@ page import ="java.sql.ResultSet" %> +<%@ page import ="java.util.UUID" %> + +<!DOCTYPE html> +<html> +<head> +<meta charset="UTF-8"> +<title>Insert title here</title> +</head> +<body> + + <% + // Parameter lesen + String newTitle = request.getParameter("title"); + int newYear = Integer.parseInt(request.getParameter("jahr")); + + Class.forName("org.postgresql.Driver"); + String url = "jdbc:postgresql://localhost/Aebi1?port=5432&user=postgres&password=123456"; + Connection c = DriverManager.getConnection(url); + + UUID id = UUID.randomUUID(); + + PreparedStatement pst= c.prepareStatement("INSERT INTO books(id, title, year) VALUES (? ,?, ?)"); + pst.setObject(1, id); + pst.setString(2, newTitle); + pst.setInt(3, newYear); + pst.execute(); + + //wenn du ein neues Buch hinzufügst, dann bist du sofort zu dem index.jsp Seite redirect + response.sendRedirect("index.jsp"); + + %> + + <!--<p>New book inserted!</p> + <p><a href="index.jsp">Go back.</a>--> + + +</body> +</html> \ No newline at end of file diff --git a/eclipse-workspace/AEBI2/src/main/webapp/books/delete.jsp b/eclipse-workspace/AEBI2/src/main/webapp/books/delete.jsp new file mode 100644 index 0000000000000000000000000000000000000000..2f99f65a31482b3d46ac80ae6bb1c0f128dcc069 --- /dev/null +++ b/eclipse-workspace/AEBI2/src/main/webapp/books/delete.jsp @@ -0,0 +1,43 @@ +<%@ page language="java" contentType="text/html; charset=UTF-8" + pageEncoding="UTF-8"%> +<%@ page import ="java.sql.Connection" %> +<%@ page import ="java.sql.DriverManager" %> +<%@ page import ="java.sql.PreparedStatement" %> +<%@ page import ="java.sql.ResultSet" %> +<%@ page import ="java.util.UUID" %> + +<!DOCTYPE html> +<html> +<head> +<meta charset="UTF-8"> +<title>Insert title here</title> +</head> +<body> + + <% + + UUID bookToDelete = UUID.fromString(request.getParameter("book")); + + Class.forName("org.postgresql.Driver"); + String url = "jdbc:postgresql://localhost/Aebi1?port=5432&user=postgres&password=123456"; + Connection c = DriverManager.getConnection(url); + //WICHTIHG PART!!--> PreparedStatement + PreparedStatement pst= c.prepareStatement("DELETE FROM books WHERE id = ?"); + pst.setObject(1, bookToDelete); + pst.execute(); + + //es gibt eine andere Variante nicht zu vervenden!! Weil wir müssen nicht user data mit Sql mischen! + //Statement s = c.createStatement(); + //s.execute("DELETE FROM books WHERE id ="+ request.getParameter("book")); + + //wenn du ein neues Buch hinzufügst, dann bist du sofort zu dem index.jsp Seite redirect + response.sendRedirect("index.jsp"); + + %> + + <!-- <p>Book </%//=bookToDelete %> was deleted.</p> + <p><a href="index.jsp">Go back.</a>--> + + +</body> +</html> \ No newline at end of file diff --git a/eclipse-workspace/AEBI2/src/main/webapp/books/index.jsp b/eclipse-workspace/AEBI2/src/main/webapp/books/index.jsp new file mode 100644 index 0000000000000000000000000000000000000000..ef713a69c02afb454d0c36be82eefa0c5e852122 --- /dev/null +++ b/eclipse-workspace/AEBI2/src/main/webapp/books/index.jsp @@ -0,0 +1,68 @@ +<%@ page language="java" contentType="text/html; charset=UTF-8" + pageEncoding="UTF-8"%> + +<%@ page import ="java.sql.Connection" %> +<%@ page import ="java.sql.DriverManager" %> +<%@ page import ="java.sql.PreparedStatement" %> +<%@ page import ="java.sql.ResultSet" %> + +<!DOCTYPE html> + +<html> +<head> +<meta charset="UTF-8"> + +<title>Insert title here</title> + +</head> + +<body> + + <% + Class.forName("org.postgresql.Driver"); + String url = "jdbc:postgresql://localhost/Aebi1?port=5432&user=postgres&password=123456"; + Connection c = DriverManager.getConnection(url); + PreparedStatement pst= c.prepareStatement("SELECT id, title, year FROM books"); + ResultSet result = pst.executeQuery(); + %> + + <p><a href="new.jsp">Neues Buch einfügen</a></p> + + <table> + <tr> + <th>Title</th> + <th>Year</th><th></th><th></th> + </tr> + + <% + while (result.next()) { + + //Two ways + /*String line = "<tr><td style='width:200px'>"+ + "$title</td><td style='width:100px'>$year</td><td>" + + "<a href='delete.jsp?book=$id'>LÖSCHEN</a></td></tr>"; + + // delete this because of UUID-->line = line.replace("$id", result.getString("id")); + line = line.replace("$title", result.getString("title")); + line = line.replace("$year", result.getString("year")); + out.println(line);*/ + + + out.println("<tr>"); + // delete this because of UUID --> out.println("<td style='font-weight:bold'>" + result.getString("id") + "</td>"); + out.println("<td>" + result.getString("title") + "</td>"); + out.println("<td>" + result.getString("year") + "</td>"); + out.println("<td><a href='modify.jsp?book=" + result.getString("id") + "'>ÄNDERN</a></td>"); + out.println("<td><a href='delete.jsp?book=" + result.getString("id") + "'>LÖSCHEN</a></td>"); + out.println("</tr>"); + } + c.close(); + + %> + <!-- nicht titel Bücher in postgres verändern, weil sondern kein UUID wird gemacht! + Erst Mal müssen wir der UUID in POstgres anmachen--- + uuid_generate_v4()--to insert in constraints, default--> + </table> + +</body> +</html> \ No newline at end of file diff --git a/eclipse-workspace/AEBI2/src/main/webapp/books/modify.jsp b/eclipse-workspace/AEBI2/src/main/webapp/books/modify.jsp new file mode 100644 index 0000000000000000000000000000000000000000..517d118452411cb5163e0d2cb8b84c1f17b66e14 --- /dev/null +++ b/eclipse-workspace/AEBI2/src/main/webapp/books/modify.jsp @@ -0,0 +1,52 @@ +<%@ page language="java" contentType="text/html; charset=UTF-8" + pageEncoding="UTF-8"%> + +<%@ page import ="java.sql.Connection" %> +<%@ page import ="java.sql.DriverManager" %> +<%@ page import ="java.sql.PreparedStatement" %> +<%@ page import ="java.sql.ResultSet" %> +<%@ page import ="java.util.UUID" %> + +<!DOCTYPE html> +<html> +<head> +<meta charset="UTF-8"> +<title>Insert title here</title> +</head> +<body> + + <% + + UUID bookToModify = UUID.fromString(request.getParameter("book")); + + Class.forName("org.postgresql.Driver"); + String url = "jdbc:postgresql://localhost/Aebi1?port=5432&user=postgres&password=123456"; + Connection c = DriverManager.getConnection(url); + PreparedStatement pst= c.prepareStatement("SELECT id, title, year FROM books WHERE id = ?"); + pst.setObject(1, bookToModify); + + String currentID = ""; + String currentTitle = ""; + int currentYear = 0; + + ResultSet result = pst.executeQuery(); + if (result.next()) { + currentID = result.getString(1); + currentTitle = result.getString(2); + currentYear = result.getInt(3); + } + %> + + <p>Buch ändern:</p> + <form action="update.jsp" method="get"> + <input type="hidden" name= "id" value="<%=currentID %>"> <!-- hidden/unsichtbar, weil so können wir ein Buch ändern --> + <p>Titel:<input type="text" name="title" value="<%=currentTitle%>"></p> + <p>Jahr:<input type="text" name="jahr" value="<%=currentYear%>"></p> + <br/> + <div><input type="submit" value="Speichern"></div> + </form> + + + +</body> +</html> \ No newline at end of file diff --git a/eclipse-workspace/AEBI2/src/main/webapp/books/new.jsp b/eclipse-workspace/AEBI2/src/main/webapp/books/new.jsp new file mode 100644 index 0000000000000000000000000000000000000000..f57aef350af3d28be7f70907d091d71d4787221a --- /dev/null +++ b/eclipse-workspace/AEBI2/src/main/webapp/books/new.jsp @@ -0,0 +1,23 @@ +<%@ page language="java" contentType="text/html; charset=UTF-8" + pageEncoding="UTF-8"%> + +<!DOCTYPE html> +<html> +<head> +<meta charset="UTF-8"> +<title>Insert title here</title> +</head> +<body> + + <p>Neues Buch:</p> + <form action="create.jsp" method="get"> + <p>Titel:<input type="text" name="title"></p> + <p>Jahr:<input type="text" name="jahr"></p> + <br/> + <div><input type="submit" value="Speichern"></div> + </form> + + + +</body> +</html> \ No newline at end of file diff --git a/eclipse-workspace/AEBI2/src/main/webapp/books/update.jsp b/eclipse-workspace/AEBI2/src/main/webapp/books/update.jsp new file mode 100644 index 0000000000000000000000000000000000000000..78b34cc546223d503a1d8b183716620bf35bbaee --- /dev/null +++ b/eclipse-workspace/AEBI2/src/main/webapp/books/update.jsp @@ -0,0 +1,43 @@ +<%@ page language="java" contentType="text/html; charset=UTF-8" + pageEncoding="UTF-8"%> +<%@ page import ="java.sql.Connection" %> +<%@ page import ="java.sql.DriverManager" %> +<%@ page import ="java.sql.PreparedStatement" %> +<%@ page import ="java.sql.ResultSet" %> +<%@ page import ="java.util.UUID" %> + +<!DOCTYPE html> +<html> +<head> +<meta charset="UTF-8"> +<title>Insert title here</title> +</head> +<body> + + <% + // Parameter lesen + UUID id = UUID.fromString(request.getParameter("id")); + String newTitle = request.getParameter("title"); + int newYear = Integer.parseInt(request.getParameter("jahr")); + + Class.forName("org.postgresql.Driver"); + String url = "jdbc:postgresql://localhost/Aebi1?port=5432&user=postgres&password=123456"; + Connection c = DriverManager.getConnection(url); + + PreparedStatement pst= c.prepareStatement("UPDATE books SET title = ?, year = ? WHERE ID =?"); + pst.setObject(3, id); + pst.setString(1, newTitle); + pst.setInt(2, newYear); + pst.execute(); + + //wenn du ein neues Buch hinzufügst, dann bist du sofort zu dem index.jsp Seite redirect + response.sendRedirect("index.jsp"); + + %> + + <!--<p>New book inserted!</p> + <p><a href="index.jsp">Go back.</a>--> + + +</body> +</html> \ No newline at end of file diff --git a/eclipse-workspace/AEBI2/src/main/webapp/img/deleteIcon.png b/eclipse-workspace/AEBI2/src/main/webapp/img/deleteIcon.png new file mode 100644 index 0000000000000000000000000000000000000000..61d19e78887338edb36e142e27d69172629c995c Binary files /dev/null and b/eclipse-workspace/AEBI2/src/main/webapp/img/deleteIcon.png differ diff --git a/eclipse-workspace/AEBI2/src/main/webapp/loan/create.jsp b/eclipse-workspace/AEBI2/src/main/webapp/loan/create.jsp new file mode 100644 index 0000000000000000000000000000000000000000..09517ee42e154ecaf40e99d18198f1e5abe415ce --- /dev/null +++ b/eclipse-workspace/AEBI2/src/main/webapp/loan/create.jsp @@ -0,0 +1,46 @@ +<%@ page language="java" contentType="text/html; charset=UTF-8" + pageEncoding="UTF-8"%> +<%@ page import ="java.sql.Connection" %> +<%@ page import ="java.sql.DriverManager" %> +<%@ page import ="java.sql.PreparedStatement" %> +<%@ page import ="java.sql.ResultSet" %> +<%@ page import ="java.util.UUID" %> +<%@ page import ="java.sql.Date" %> + +<!DOCTYPE html> +<html> +<head> +<meta charset="UTF-8"> +<title>Insert title here</title> +</head> +<body> + + <% + // Parameter lesen + UUID user = UUID.fromString(request.getParameter("user")); + UUID book = UUID.fromString(request.getParameter("book")); + String dateAsString = request.getParameter("datum"); + java.util.Date date1 = new java.text.SimpleDateFormat("dd.MM.yyyy").parse(dateAsString); + + Class.forName("org.postgresql.Driver"); + String url = "jdbc:postgresql://localhost/Aebi1?port=5432&user=postgres&password=123456"; + Connection c = DriverManager.getConnection(url); + + UUID id = UUID.randomUUID(); + + PreparedStatement pst= c.prepareStatement("INSERT INTO books_users (id, \"user\", book, return_date) "+" VALUES (? ,?, ?, ?);"); + pst.setObject(1, id); + pst.setObject(2, user); + pst.setObject(3, book); + + java.sql.Date date2 = new java.sql.Date(date1.getTime()); + pst.setDate(4, date2); + pst.execute(); + + response.sendRedirect("index.jsp"); + + %> + + +</body> +</html> \ No newline at end of file diff --git a/eclipse-workspace/AEBI2/src/main/webapp/loan/delete.jsp b/eclipse-workspace/AEBI2/src/main/webapp/loan/delete.jsp new file mode 100644 index 0000000000000000000000000000000000000000..b7705c9cb4527801124f6dccef4cd42549c43461 --- /dev/null +++ b/eclipse-workspace/AEBI2/src/main/webapp/loan/delete.jsp @@ -0,0 +1,43 @@ +<%@ page language="java" contentType="text/html; charset=UTF-8" + pageEncoding="UTF-8"%> +<%@ page import ="java.sql.Connection" %> +<%@ page import ="java.sql.DriverManager" %> +<%@ page import ="java.sql.PreparedStatement" %> +<%@ page import ="java.sql.ResultSet" %> +<%@ page import ="java.util.UUID" %> + +<!DOCTYPE html> +<html> +<head> +<meta charset="UTF-8"> +<title>Insert title here</title> +</head> +<body> + + <% + + UUID loanToDelete = UUID.fromString(request.getParameter("loan")); + + Class.forName("org.postgresql.Driver"); + String url = "jdbc:postgresql://localhost/Aebi1?port=5432&user=postgres&password=123456"; + Connection c = DriverManager.getConnection(url); + //WICHTIHG PART!!--> PreparedStatement + PreparedStatement pst= c.prepareStatement("DELETE FROM books_users WHERE id = ?"); + pst.setObject(1, loanToDelete); + pst.execute(); + + //es gibt eine andere Variante nicht zu vervenden!! Weil wir müssen nicht user data mit Sql mischen! + //Statement s = c.createStatement(); + //s.execute("DELETE FROM books WHERE id ="+ request.getParameter("book")); + + //wenn du ein neues Buch hinzufügst, dann bist du sofort zu dem index.jsp Seite redirect + response.sendRedirect("index.jsp"); + + %> + + <!-- <p>Book </%//=bookToDelete %> was deleted.</p> + <p><a href="index.jsp">Go back.</a>--> + + +</body> +</html> \ No newline at end of file diff --git a/eclipse-workspace/AEBI2/src/main/webapp/loan/index.jsp b/eclipse-workspace/AEBI2/src/main/webapp/loan/index.jsp new file mode 100644 index 0000000000000000000000000000000000000000..91cadd29181fba717dc55396704948c5147982aa --- /dev/null +++ b/eclipse-workspace/AEBI2/src/main/webapp/loan/index.jsp @@ -0,0 +1,62 @@ +<%@ page language="java" contentType="text/html; charset=UTF-8" + pageEncoding="UTF-8"%> + +<%@ page import ="java.sql.Connection" %> +<%@ page import ="java.sql.DriverManager" %> +<%@ page import ="java.sql.PreparedStatement" %> +<%@ page import ="java.sql.ResultSet" %> +<%@ page import ="java.util.Date" %> + +<!DOCTYPE html> + +<html> +<head> +<meta charset="UTF-8"> + +<title>Insert title here</title> + +</head> + +<body> + + <% + Class.forName("org.postgresql.Driver"); + String url = "jdbc:postgresql://localhost/Aebi1?port=5432&user=postgres&password=123456"; + Connection c = DriverManager.getConnection(url); + PreparedStatement pst= c.prepareStatement( + "SELECT books_users.id, books.title AS book, users.name AS \"user\", return_date FROM books_users " + + "INNER JOIN books ON books.id = books_users.book " + + "INNER JOIN users ON users.id = books_users.user ORDER BY return_date DESC "); + ResultSet result = pst.executeQuery(); + %> + + <p><a href="new.jsp">Neuen Verleih einfügen</a></p> + + <table> + <tr> + <th>Buch</th> + <th>User</th> + <th>Rückgabedatum</th><th></th><th></th> + </tr> + + <% + while (result.next()) { + + //Date d = result.getDate("return_date"); + //String style = d.before(new Date()) ? "red" : "white"; + + out.println("<tr>"); + out.println("<td>" + result.getString("book") + "</td>"); + out.println("<td>" + result.getString("user") + "</td>"); + out.println("<td>" + result.getString("return_date") + "</td>"); + out.println("<td><a href='modify.jsp?loan=" + result.getString("id") + "'>ÄNDERN</a></td>"); + out.println("<td><a href='delete.jsp?loan=" + result.getString("id") + "'>LÖSCHEN</a></td>"); + out.println("</tr>"); + } + c.close(); + %> + + </table> + +</body> +</html> \ No newline at end of file diff --git a/eclipse-workspace/AEBI2/src/main/webapp/loan/modify.jsp b/eclipse-workspace/AEBI2/src/main/webapp/loan/modify.jsp new file mode 100644 index 0000000000000000000000000000000000000000..95ac8ecb942ba5549b860b930f7ef516ba03548e --- /dev/null +++ b/eclipse-workspace/AEBI2/src/main/webapp/loan/modify.jsp @@ -0,0 +1,98 @@ +<%@ page language="java" contentType="text/html; charset=UTF-8" + pageEncoding="UTF-8"%> + +<%@ page import="java.sql.Connection"%> +<%@ page import="java.sql.DriverManager"%> +<%@ page import="java.sql.PreparedStatement"%> +<%@ page import="java.sql.ResultSet"%> +<%@ page import="java.util.UUID"%> + +<!DOCTYPE html> +<html> +<head> +<meta charset="UTF-8"> +<title>Insert title here</title> +</head> +<body> + + <% + UUID loanToModify = UUID.fromString(request.getParameter("loan")); + + Class.forName("org.postgresql.Driver"); + String url = "jdbc:postgresql://localhost/Aebi1?port=5432&user=postgres&password=123456"; + Connection c = DriverManager.getConnection(url); + + PreparedStatement pst = c.prepareStatement("SELECT id, name FROM users;"); + ResultSet result = pst.executeQuery(); + + PreparedStatement pst2 = c.prepareStatement("SELECT id, title FROM books;"); + ResultSet result2 = pst2.executeQuery(); + + PreparedStatement pst3 = c.prepareStatement("SELECT id, \"user\", book, return_date FROM books_users WHERE id = ?"); + pst3.setObject(1, loanToModify); + + String currentID = ""; + String currentUser = ""; + String currentBook = ""; + String currentReturn = ""; + + ResultSet result3 = pst3.executeQuery(); + if (result3.next()) { + currentID = result3.getString(1); + currentUser = result3.getString(2); + currentBook = result3.getString(3); + + java.sql.Date currentReturnAsDate = result3.getDate(4); + currentReturn = new java.text.SimpleDateFormat("dd.MM.yyyy").format(currentReturnAsDate); + } + %> + + <p>Verleih ändern:</p> + <form action="update.jsp" method="get"> + <input type="hidden" name="id" value="<%=currentID%>"> + + + <p> + User:<select name="user" id="user"> + <% + while (result.next()) { + + String toAdd = ""; + if (result.getString("id").equals(currentUser)) { + toAdd = "selected"; + } + out.println( + "<option value='" + result.getString("id") + "' " + toAdd + ">" + result.getString("name") + "</option>"); + } + %> + + + </select> + </p> + <p> + Buch:<select name="book" id="book"> + <% + while (result2.next()) { + String toAdd = (result2.getString("id").equals(currentBook)) ? "selected":""; + out.println("<option value='" + result2.getString("id") + "' " + toAdd + ">" + result2.getString("title") + + "</option>"); + } + %> + + </select> + </p> + + <p> + Rückgabedatum:<input type="text" name="datum" value="<%=currentReturn%>"> + </p> + <br /> + + <div> + <input type="submit" value="Speichern"> + </div> + </form> + + + +</body> +</html> \ No newline at end of file diff --git a/eclipse-workspace/AEBI2/src/main/webapp/loan/new.jsp b/eclipse-workspace/AEBI2/src/main/webapp/loan/new.jsp new file mode 100644 index 0000000000000000000000000000000000000000..424f5f7a6f1ffc1a2d4281fd62aa3cc79fb1c46e --- /dev/null +++ b/eclipse-workspace/AEBI2/src/main/webapp/loan/new.jsp @@ -0,0 +1,55 @@ +<%@ page language="java" contentType="text/html; charset=UTF-8" + pageEncoding="UTF-8"%> + +<%@ page import ="java.sql.Connection" %> +<%@ page import ="java.sql.DriverManager" %> +<%@ page import ="java.sql.PreparedStatement" %> +<%@ page import ="java.sql.ResultSet" %> + +<!DOCTYPE html> +<html> +<head> +<meta charset="UTF-8"> +<title>Insert title here</title> +</head> +<body> + + <% + Class.forName("org.postgresql.Driver"); + String url = "jdbc:postgresql://localhost/Aebi1?port=5432&user=postgres&password=123456"; + Connection c = DriverManager.getConnection(url); + PreparedStatement pst= c.prepareStatement("SELECT id, name FROM users;"); + ResultSet result = pst.executeQuery(); + + PreparedStatement pst2= c.prepareStatement("SELECT id, title FROM books;"); + ResultSet result2 = pst2.executeQuery(); + %> + + <p>Neuer Verleih:</p> + <form action="create.jsp" method="get"> + <p>User:<select name="user" id="user"> + <% + while (result.next()) + out.println("<option value='" + result.getString("id") + "'>" + + result.getString("name") + "</option>"); + %> + + </select></p> + <p>Buch:<select name="book" id="book"> + <% + while (result2.next()) + out.println("<option value='" + result2.getString("id") + "'>" + + result2.getString("title") + "</option>"); + %> + + </select></p> + + <p>Rückgabedatum:<input type="text" name="datum"></p> + <br/> + <div><input type="submit" value="Speichern"></div> + </form> + + <% c.close(); %> + +</body> +</html> \ No newline at end of file diff --git a/eclipse-workspace/AEBI2/src/main/webapp/loan/update.jsp b/eclipse-workspace/AEBI2/src/main/webapp/loan/update.jsp new file mode 100644 index 0000000000000000000000000000000000000000..fd2b8b5ce258d94a314225a28b3a392c32084293 --- /dev/null +++ b/eclipse-workspace/AEBI2/src/main/webapp/loan/update.jsp @@ -0,0 +1,48 @@ +<%@ page language="java" contentType="text/html; charset=UTF-8" + pageEncoding="UTF-8"%> +<%@ page import ="java.sql.Connection" %> +<%@ page import ="java.sql.DriverManager" %> +<%@ page import ="java.sql.PreparedStatement" %> +<%@ page import ="java.sql.Statement" %> +<%@ page import ="java.sql.ResultSet" %> +<%@ page import ="java.util.UUID" %> + +<!DOCTYPE html> +<html> +<head> +<meta charset="UTF-8"> +<title>Insert title here</title> +</head> +<body> + + <% + // Parameter lesen + UUID user = UUID.fromString(request.getParameter("user")); + UUID book = UUID.fromString(request.getParameter("book")); + String dateAsString = request.getParameter("datum"); + java.util.Date date1 = new java.text.SimpleDateFormat("dd.MM.yyyy").parse(dateAsString); + + Class.forName("org.postgresql.Driver"); + String url = "jdbc:postgresql://localhost/Aebi1?port=5432&user=postgres&password=123456"; + Connection c = DriverManager.getConnection(url); + + UUID id = UUID.randomUUID(); + + PreparedStatement pst = c.prepareStatement("UPDATE books_users SET \"user\"=?, book=?, return_date=? " + " WHERE id=?;"); + + pst.setObject(1, user); + pst.setObject(2, book); + + java.sql.Date date2 = new java.sql.Date(date1.getTime()); + pst.setDate(3, date2); + pst.setObject(4, id); + pst.execute(); + + response.sendRedirect("index.jsp"); + + %> + + + +</body> +</html> \ No newline at end of file