From 5f6b6f5dfaa7e68ec42e771ccc33a2ab2521dff0 Mon Sep 17 00:00:00 2001 From: "SIMONVOLLENDORF\\Simon" <simon.vollendorf@smail.inf.h-brs.de> Date: Wed, 14 Jun 2017 08:49:49 +0200 Subject: [PATCH] =?UTF-8?q?+Splittung=20RegControl=20und=20RegDAO=20+Inser?= =?UTF-8?q?tion=20eingespeist,=20funktioniert=20aber=20noch=20nicht=20so?= =?UTF-8?q?=20ganz=20+leichte=20=C3=84nderung=20an=20der=20View,=20weil=20?= =?UTF-8?q?das=20DB-technisch=20so=20nicht=20funktioniert?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/org/s4s/dao/RegistrationDAO.java | 38 ++++++++ src/main/java/org/s4s/dao/ShopDAO.java | 2 +- .../s4s/dao/impl/AbstractDatabaseClass.java | 8 ++ .../org/s4s/dao/impl/RegistrationControl.java | 87 ++++++++----------- .../org/s4s/gui/views/RegistrierungView.java | 17 ++-- src/main/java/org/s4s/modell/dto/User.java | 55 ++++++++---- .../webapp/VAADIN/themes/mytheme/styles.css | 11 +-- .../dao/impl/RegistrationControl_Test.java | 3 +- 8 files changed, 134 insertions(+), 87 deletions(-) create mode 100644 src/main/java/org/s4s/dao/RegistrationDAO.java diff --git a/src/main/java/org/s4s/dao/RegistrationDAO.java b/src/main/java/org/s4s/dao/RegistrationDAO.java new file mode 100644 index 0000000..a62c9f0 --- /dev/null +++ b/src/main/java/org/s4s/dao/RegistrationDAO.java @@ -0,0 +1,38 @@ +/* + * To change this license header, choose License Headers in Project Properties. + * To change this template file, choose Tools | Templates + * and open the template in the editor. + */ +package org.s4s.dao; + +import java.sql.*; +import org.s4s.dao.impl.AbstractDatabaseClass; +import org.s4s.exceptions.WrongInputException; +import org.s4s.services.db.JDBCConnection; + +/** + * + * @author Simon + */ +public class RegistrationDAO extends AbstractDatabaseClass { + + Statement st = JDBCConnection.getInstance().getStatement(); + String sql_update; + + public void addUser(String benutzer, String nachname, String vorname, java.util.Date gebDate, int fBereich, String email, String emailwdh, String passwort, String passwortWdh) { + try { + sql_update = "INSERT INTO \"ERR\".\"user\"(benutzername, nachname, vorname, geburtsdatum, fachbreichid, email, passwort)" + + "VALUES(" + benutzer + ", " + nachname + ", " + vorname + ", " + gebDate + ", " + fBereich + ", " + email + ", " + passwort + ")"; + + boolean exe = st.execute(sql_update); + if(!exe) { + throw new WrongInputException("Wrong Input!"); + } + + } catch (Exception ex) { + ex.printStackTrace(); + System.out.println("Exception occur: " + ex); + } + + } +} diff --git a/src/main/java/org/s4s/dao/ShopDAO.java b/src/main/java/org/s4s/dao/ShopDAO.java index 6ff0f96..252742e 100644 --- a/src/main/java/org/s4s/dao/ShopDAO.java +++ b/src/main/java/org/s4s/dao/ShopDAO.java @@ -21,7 +21,7 @@ public class ShopDAO { public static ShopDAO dao = null; private final Statement statement = JDBCConnection.getInstance().getStatement(); private ShopDAO() { - + } public static ShopDAO getInstance() { diff --git a/src/main/java/org/s4s/dao/impl/AbstractDatabaseClass.java b/src/main/java/org/s4s/dao/impl/AbstractDatabaseClass.java index ea416a0..8f2a8bf 100644 --- a/src/main/java/org/s4s/dao/impl/AbstractDatabaseClass.java +++ b/src/main/java/org/s4s/dao/impl/AbstractDatabaseClass.java @@ -28,4 +28,12 @@ public abstract class AbstractDatabaseClass { stat.closeOnCompletion(); return set; } + + /*protected int executeUpdate(String sql) throws SQLException { + Statement stat = conn.getStatement(); + int set = stat.executeUpdate(sql); + stat.closeOnCompletion(); + return set; + }*/ + } diff --git a/src/main/java/org/s4s/dao/impl/RegistrationControl.java b/src/main/java/org/s4s/dao/impl/RegistrationControl.java index 8c4942e..b24cf4d 100644 --- a/src/main/java/org/s4s/dao/impl/RegistrationControl.java +++ b/src/main/java/org/s4s/dao/impl/RegistrationControl.java @@ -5,10 +5,11 @@ */ package org.s4s.dao.impl; -import java.sql.*; + import java.util.regex.Matcher; import java.util.regex.Pattern; import org.apache.commons.validator.routines.EmailValidator; +import org.s4s.dao.RegistrationDAO; import org.s4s.exceptions.WrongInputException; @@ -22,67 +23,51 @@ public class RegistrationControl { private static String vorname; private static String email; private static String passwort; + private static RegistrationDAO regDAO = new RegistrationDAO(); - //DB-Block - Connection con; - Statement st; - ResultSet rs; - String sql_update; - String url; + + /** + * + * @param benutzer + * @param nachname + * @param vorname + * @param gebDate + * @param fBereich + * @param email + * @param emailwdh + * @param passwort + * @param passwortWdh + */ - public static boolean init(String[] data) { - nachname = data[0]; - vorname = data[1]; - email = data[2]; - passwort = data[4]; + public static void init(String benutzer, String nachname, String vorname, java.util.Date gebDate, int fBereich, String email, String emailwdh, String passwort, String passwortWdh) { + + + try { + if(!passwort.equals(passwortWdh)) { + throw new WrongInputException("Passwort entspricht nicht den Anforderungen!"); + } - if(!(passwort.equals(data[5]) || email.equals(data[3]))) { - return false; + if(!email.equals(emailwdh) && !emailValidator()) { + throw new WrongInputException("Email-Adressen stimmen nicht überein oder sind nicht gültig!"); } if (!nameValidator(nachname)) { - return false; + throw new WrongInputException("Nachname enthält ungültige Zeichen!"); } if (!nameValidator(vorname)) { - return false; - } - - if (!emailValidator()) { - return false; + throw new WrongInputException("Vorname enthält ungültige Zeichen!"); } if (!passwordValidator()) { - return false; + throw new WrongInputException("Passwort ungültig!"); + } + } catch(WrongInputException w) { + w.printStackTrace(); + System.out.println("Exception occur: " + w.getMessage()); } - - return true; - - } - - - public void addUser(String[] data) { - try { - if (!init(data)) { - //Exception - throw new WrongInputException("Falsche Eingabe, bitte erneut eingeben!"); - } - - con = DriverManager.getConnection(url); - st = con.createStatement(); - - - sql_update = "INSERT INTO \"ERR\".\"user\"(email, passwort, nachname, vorname)" + - "VALUES(email, passwort, nachname, vorname)"; //erweitern - - st.executeUpdate(sql_update); - - } catch (Exception ex) { - ex.printStackTrace(); - System.out.println("Exception occur: " + ex); - } - + regDAO.addUser(benutzer, nachname, vorname, gebDate, fBereich, email, emailwdh, passwort, passwortWdh); } public static boolean nameValidator(String toValidate) { @@ -101,10 +86,12 @@ public class RegistrationControl { } public static boolean passwordValidator() { - String regex = "^.*(?=.{8,})(?=..*[0-9])(?=.*[a-z])(?=.*[A-Z])(?=.*[!@#$%^&+=]).*$"; + + return passwort.length() > 8; + /* String regex = "^.*(?=.{8,})(?=..*[0-9])(?=.*[a-z])(?=.*[A-Z])(?=.*[!@#$%^&+=]).*$"; Pattern p = Pattern.compile(regex); Matcher m = p.matcher(passwort); - return m.matches(); + return m.matches(); */ } } diff --git a/src/main/java/org/s4s/gui/views/RegistrierungView.java b/src/main/java/org/s4s/gui/views/RegistrierungView.java index 1c6cef7..47e424a 100644 --- a/src/main/java/org/s4s/gui/views/RegistrierungView.java +++ b/src/main/java/org/s4s/gui/views/RegistrierungView.java @@ -63,11 +63,15 @@ public class RegistrierungView extends TemplateView implements View { content.addComponent(vornameTxt); - NativeSelect fachbereich = new NativeSelect("Fachbereich"); - fachbereich.addItems("Student", "Hivi", "Prof"); + /* NativeSelect fachbereich = new NativeSelect("Fachbereich"); //hier braucht die Datenbank Integer Werte! Fachbereich ist nicht Student, Hiwi oder Prof sonder FB01, 02,03 etc!! + fachbereich.addItems("Student", "Hivi", "Prof"); //ich kann das grad nicht selber machen, weil ich beim deployen fehler kriege und nicht ungetestetes commiten möchte! Also bitte abändern! fachbereich.setNullSelectionAllowed(false); content.addComponent(fachbereich); - +*/ + TextField fachbereich = new TextField("Fachbereich:"); + fachbereich.setConverter(Integer.class); + fachbereich.setIcon(FontAwesome.ANDROID); + content.addComponent(fachbereich); TextField emailTxt = new TextField("E-Mail:"); @@ -112,7 +116,7 @@ public class RegistrierungView extends TemplateView implements View { String nachname = nachnameTxt.getValue(); String vorname = vornameTxt.getValue(); Date gebDate = bday.getValue(); - String fBereich = (String) fachbereich.getValue(); + int fBereich = (int) fachbereich.getConvertedValue(); String email = emailTxt.getValue(); String emailwdh = emailTxtWdh.getValue(); String passwort = passwortTxt.getValue(); @@ -120,8 +124,9 @@ public class RegistrierungView extends TemplateView implements View { UI.getCurrent().getNavigator().navigateTo(Views.REGISTRIERUNGSBESTAETIGUNG); //Anbindungstestblock. svolle2s - RegistrationControl.init(new String[]{nachname, vorname, email, emailwdh, passwort, passwortWdh, benutzer,}); // diverse Daten fehlen siehe bday fachbereich - + //RegistrationControl.init(new String[]{nachname, vorname, email, emailwdh, passwort, passwortWdh, benutzer,}); // diverse Daten fehlen siehe bday fachbereich + RegistrationControl.init(benutzer, nachname, vorname, gebDate, fBereich, email, emailwdh, passwort, passwortWdh); + System.out.println(benutzer); System.out.println(nachname); System.out.println(vorname); diff --git a/src/main/java/org/s4s/modell/dto/User.java b/src/main/java/org/s4s/modell/dto/User.java index e78eda6..b7ad3ea 100644 --- a/src/main/java/org/s4s/modell/dto/User.java +++ b/src/main/java/org/s4s/modell/dto/User.java @@ -5,6 +5,8 @@ */ package org.s4s.modell.dto; +import java.util.Date; + /** * * @author Holger @@ -12,48 +14,63 @@ package org.s4s.modell.dto; public class User { private int userId; - private String email; - private String geburtsdatum; - private int fachbereichId; private String vorname; private String nachname; + private Date geburtsdatum; + private int fachbereichId; + private String email; + + private final String benutzername; public User(String benutzername){ this.benutzername = benutzername; } + + public String getBenutzername() { + return benutzername; + } - public int getUserId() { - return userId; + public String getVorname() { + return vorname; } - public String getEmail() { - return email; + public void setVorname(String vorname) { + this.vorname = vorname; } - public String getGeburtsdatum() { - return geburtsdatum; + public String getNachname() { + return nachname; } - public int getFachbereichId() { - return fachbereichId; + public void setNachname(String nachname) { + this.nachname = nachname; } - public String getBenutzername() { - return benutzername; + public Date getGeburtsdatum() { + return geburtsdatum; } + public void setGeburtsdatum(Date geburtsdatum) { + this.geburtsdatum = geburtsdatum; + } - public String getVorname() { - return vorname; + public int getFachbereichId() { + return fachbereichId; } - public String getNachname() { - return nachname; + public void setFachbereichId(int fachbereichId) { + this.fachbereichId = fachbereichId; } - public String getUsername() { - return benutzername; + public String getEmail() { + return email; + } + + public void setEmail(String email) { + this.email = email; } + + } diff --git a/src/main/webapp/VAADIN/themes/mytheme/styles.css b/src/main/webapp/VAADIN/themes/mytheme/styles.css index a4c1862..72ec58e 100644 --- a/src/main/webapp/VAADIN/themes/mytheme/styles.css +++ b/src/main/webapp/VAADIN/themes/mytheme/styles.css @@ -12984,7 +12984,6 @@ div.v-layout.v-horizontal.v-widget { width: 19px; overflow: hidden; } -<<<<<<< HEAD .mytheme .customShell { width: 1024px; @@ -13049,12 +13048,4 @@ div.v-layout.v-horizontal.v-widget { .mytheme .LoginViewContainerTitelLayout { padding-bottom: 15px; -} -======= -/** Test -h1 { - background-color: red; - -} -*/ ->>>>>>> 47d7bfd324c39b8339db585da515957e5ac54bd3 +} \ No newline at end of file diff --git a/src/test/java/org/s4s/dao/impl/RegistrationControl_Test.java b/src/test/java/org/s4s/dao/impl/RegistrationControl_Test.java index e19d70f..d3a6ffe 100644 --- a/src/test/java/org/s4s/dao/impl/RegistrationControl_Test.java +++ b/src/test/java/org/s4s/dao/impl/RegistrationControl_Test.java @@ -26,7 +26,8 @@ public class RegistrationControl_Test { data1[1] = "Simon"; data1[2] = "simon.uerdingen@inf.h-brs.de"; data1[4] = "12345"; - assertTrue(RegistrationControl.init(data1)); + //assertTrue(RegistrationControl.init(data1)); + //@TM: der Test muss neu geschrieben werden, wegen Änderungen in View, DAO & Control; svolle2s } } \ No newline at end of file -- GitLab