Jump to content

Monsieur Bate

Mitglieder
  • Gesamte Inhalte

    32
  • Benutzer seit

  • Letzter Besuch

  1. Schau mal hier: public class main { public static void main(String[] args) throws IOException { ConnectionToMySQL conMySQL = new ConnectionToMySQL(); Aufgaben tasks = new Aufgaben(); conMySQL.connect(); System.out.print("Verbindung: " + conMySQL.isConnected() + "\n"); tasks.EnterInformation(); } } Ich habe hier in der main-Klasse die Connection gestartet und entsprechend meines Vorhabens die "EnterInformation"-Methode meiner Klasse "Aufgaben" verwendet. Die Connection wird nicht geschlossen. Ja, das ganze wird auch geprüft, bevor sie ausgeführt wird. Also was genau passiert ist, dass das Programm erkennt, dass meine Tabelle "kunde" beispielsweise die Eingabe, die ich gemacht habe erkennt und auswertet. Ist die Eingabe in der Tabelle nicht enthalten so soll die eingegebene Information in die Tabelle eingetragen werden. Ich habe das gemacht, weil der Sinn hinter der Methode ist, dass die Informationen dort an die Tabelle übergeben werden. Leider ist mir das nicht bekannt.
  2. Findest du aus meinem Eröffnungspost in der 2. Klasse, in der "executeQuery"-Methode: return stmt.executeQuery(query);
  3. Ist mir schon klar. Aber es macht keinen Sinn, dass es in der Zeile 64 einen Fehler gibt. Denn die Sache ist, dass es bevor ich die neue Methode "executeUpdate" geschrieben und verwendet hatte, problemlos funktionierte. Ich benutze die Methode "executeQuery" genau einemal, und das passiert bevor ich die Methode "executeUpdate" aufrufe. Daher ist es für mich trotz Debuggen nicht ersichtlich. Denn der Fehler ist nicht bei "executeQuery".
  4. Das hat mir nicht wirklich weitergeholfen. Bin bereits mit dem Debugger durch den Code gegangen. Da war kein Fehler ersichtlich. Der Fehler entstand, als ich versuchte die Informationen, die eingegeben wurden, in die Tabelle hinzuzufügen.
  5. Sorry, hatte ich voll vergessen hinzuzufügen. Hier der Fehler: Exception in thread "main" java.lang.NullPointerException at testaufgabe.ConnectionToMySQL.executeQuery(ConnectionToMySQL.java:64) at testaufgabe.Aufgaben.ExistingName(Aufgaben.java:57) at testaufgabe.Aufgaben.EnterInformation(Aufgaben.java:51) at testaufgabe.main.main(main.java:34) C:\Users\TESTPROJEKT\AppData\Local\NetBeans\Cache\8.2\executor-snippets\run.xml:53: Java returned: 1 BUILD FAILED (total time: 2 seconds)
  6. Hallo, ich habe hier unten mal meinen Code gepostet, mit dem ich versuche, meine Tabelle "kunde" durch die Informationen, die der User zuvor eingegeben zu erweitern, im Falle dass sie noch nicht in der Tabelle existieren. Allerdings erscheint ständig ein Fehler, den ich nicht ganz nachvollziehen kann. Wenn jemand vielleicht in dem Code einen Fehler findet, dann könnte das mein Problem lösen. package testaufgabe; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import java.util.ArrayList; import java.util.List; import java.util.Scanner; import java.util.logging.Level; import java.util.logging.Logger; public class Aufgaben { private BufferedReader reader; private Scanner scanner; private ConnectionToMySQL conMySQL; private ResultSet result = null; private Connection connection; private Statement statement; public Aufgaben() { reader = new BufferedReader(new InputStreamReader(System.in)); scanner = new Scanner(System.in); conMySQL = new ConnectionToMySQL(); } public void EnterInformation() throws IOException { // NAMEN abfragen, USER-Eingabe System.out.println("Gib hier deinen Vor- und Nachnamen ein: \nVorname: "); String firstName = scanner.nextLine(); System.out.println("\nNachname: "); String lastName = reader.readLine(); System.out.println("\n" + firstName + " " + lastName); ExistingName(firstName, lastName); } private void ExistingName(String firstName, String lastName) { List<String> usernames = new ArrayList<String>(); result = conMySQL.executeQuery("SELECT k.vn, k.nn FROM kunde k"); try { while (result.next()) { usernames.add(result.getString(1) + " " + result.getString(2)); } } catch (SQLException ex) { Logger.getLogger(Aufgaben.class.getName()).log(Level.SEVERE, null, ex); } // Überprüft, ob User in der DB existiert // Fügt neuen Namen in die Tabelle for (String name : usernames) { String username = firstName + " " + lastName; if (!username.equals(name)) { conMySQL.executeUpdate(firstName, lastName); } } } } --------------------------------------------------------------------------------------- Die Klasse hier drüber greift auf die folgende zu: --------------------------------------------------------------------------------------- package testaufgabe; import java.sql.DriverManager; import java.sql.SQLException; import java.sql.ResultSet; import java.sql.Statement; import java.util.Random; import java.util.logging.Level; import java.util.logging.Logger; import java.sql.Connection; public class ConnectionToMySQL { private static final String MYSQL_JDBC_STRING = "jdbc:mysql://127.0.0.1:3306/pizza_service"; private boolean connected = false; private Statement stmt; private Connection connection; private ResultSet resultSet = null; private Random random = new Random(); public boolean connect() { String url = MYSQL_JDBC_STRING + "?zeroDateTimeBehavior=convertToNull"; try { connection = DriverManager.getConnection(url, "root", ""); stmt = connection.createStatement(); } catch (SQLException ex) { Logger.getLogger(main.class.getName()).log(Level.WARNING, null, ex); } connected = true; return connected; } public void close() { try { connection.close(); connected = false; } catch (SQLException ex) { Logger.getGlobal().log(Level.SEVERE, null, ex); } } public boolean isConnected() { return connected; } public ResultSet executeQuery(final String query) { try { String url = MYSQL_JDBC_STRING + "?zeroDateTimeBehavior=convertToNull"; connection = DriverManager.getConnection(url, "root", ""); stmt = connection.createStatement(); return stmt.executeQuery(query); } catch (SQLException ex) { Logger.getLogger(main.class.getName()).log(Level.SEVERE, null, ex); } return null; } public Statement executeUpdate(String firstName, String lastName) { try { String url = MYSQL_JDBC_STRING + "?zeroDateTimeBehavior=convertToNull"; connection = DriverManager.getConnection(url, "root", ""); stmt = connection.createStatement(); stmt.executeUpdate("INSERT INTO kunde VALUES ('" + firstName + "','" + lastName + "')"); } catch (SQLException ex) { Logger.getLogger(ConnectionToMySQL.class.getName()).log(Level.SEVERE, null, ex); } return null; } }
  7. SQL Aufgaben (Einstieg)

    Alles gut, nicht aufregen. Aber ernsthaft, ich habe extrem viel im Internet nachgeschaut. Ich weiß wirklich nicht, wie man zwei Datensätze miteinander vergleicht, um dann das mit der größeren Menge anzeigen zu lassen. BTW. Ich habe alles Aufgaben gelöst, mir fehlt tatsächlich nur noch die Aufgabe. Keiner Ahnung, was an ihr so schwer ist, aber ich hänge schon seit vorgestern an der Kack Aufgabe. Alle anderen habe ich hinbekommen, nur die nicht.
  8. SQL Aufgaben (Einstieg)

    Ich möchte die Kunden und ihre Lieblingsmarke anzeigen. Da Kunde "1" lieber Hohes C trinkt, möchte ich erreichen, dass diese Marke als die Lieblingsmarke des Kunden "1" angezeigt wird und die andere Marke rausfällt. Wie kann ich das machen? Kann ich einen Vergleich zwischen den Mengen machen? Ich möchte aber, dass der Kunde "2" auch angezeigt wird, da er ja nur eine Lieblingsmarke hat. BESTELLUNG Kunde Marke O-Saft 1l 1 Hohes C 3 1 Grannini 1 2 Rauch 4
  9. SQL Aufgaben (Einstieg)

    Kurze Erklärung der Logik, wie man die einzelnen Aufgaben "ungefähr" bearbeiten sollte.
  10. SQL Aufgaben (Einstieg)

    Nö. Die Datenbank ist aber noch nicht in der Anwendung eingebunden, in welchem ich das vorgebe. Die Aufgaben zielen erst mal nur auf die SQL-Querys.
  11. SQL Aufgaben (Einstieg)

    Möchte mir niemand mehr helfen? Ich erwarte keine Lösungen, wenn ihr das denkt, mir geht es nur um Ansätze für die Aufgaben.
  12. SQL Aufgaben (Einstieg)

    1. ALTER TABLE zutaten_liste ADD CONSTRAINT zutaten_liste_PIZZA_FK FOREIGN KEY (PIZZA) REFERENCES pizza(ID);ALTER TABLE zutaten_liste ADD CONSTRAINT zutaten_liste_ZUTAT_FK FOREIGN KEY (ZUTAT) REFERENCES pizza(ID);ALTER TABLE bestellung ADD CONSTRAINT bestellung_KUNDE_FK FOREIGN KEY (KUNDE) REFERENCES bestellung(ID);ALTER TABLE bestellung ADD CONSTRAINT bestellung_PIZZA_FK FOREIGN KEY (PIZZA) REFERENCES bestellung(ID);2. SELECT * FROM pizza;3. SELECT * FROM kunde;4. SELECT * FROM zutaten;5. SELECT * FROM zutaten_liste;6. SELECT * FROM bestellung;7. SELECT * FROM kunde WHERE ORT = 'Berlin';8. DELETE FROM kunde WHERE pw;9. SELECT COUNT(*) FROM kunde WHERE Ort = 'Petershagen';10. SELECT MIN(PREIS_NORMAL) FROM pizza;11. UPDATE kunde SET Ort = 'Petershagen' WHERE EMAIL = 'a@f';12. SELECT * FROM pizza p, zutaten_liste zl, zutaten zWHERE z.name = 'Käse' AND z.id = zl.zutat AND zl.pizza = p.id;13. SELECT * FROM pizza p, zutaten_liste zl, zutaten zWHERE z.name IN ('Käse', 'Salami') AND z.id = zl.zutat AND zl.pizza = p.id GROUP BY p.name;14. SELECT CONCAT(k.vn, ' ', k.nn) AS person FROM kunde k, bestellung bWHERE b.kunde = k.id GROUP BY person;15. SELECT CONCAT(k.vn, ' ', k.nn) AS person, MAb.anz_normal + b.anz_family) AS total FROM kunde k, bestellung bWHERE k.id = b.kundeGROUP BY personORDER BY total DESC LIMIT 1;1. Erzeuge Fremdschlüssel für die Tabellen:- ZUTATEN_LISTE (PIZZA, ZUTAT)- BESTELLUNG (KUNDE, PIZZA)2. Wähle alle Einträge der Tabelle PIZZA aus.3. Wähle alle Einträge der Tabelle KUNDE aus.4. Wähle alle Einträge der Tabelle ZUTATEN aus.5. Wähle alle Einträge der Tabelle ZUTATEN_LISTE aus.6. Wähle alle Einträge der Tabelle BESTELLUNG aus.7. Wer wohnt in Berlin?8. Lösche die Spalte „pw“ von der Kunden Tabelle.9. Wie viele Kunden wohnen in Petershagen?10. Welche Pizza ist die günstigste?11. Ändere den Wohnort des Kunden, mit der Email Adresse „a@f“, in Petershagen.12. Selektiere alle Pizzen, die Käse als Zutat haben.13. Selektiere alle Pizzen, die Käse und Salami als Zutat haben.14. Selektiere die Kunden, die eine offene Bestellung haben.15. Welcher Kunde hat die meisten Pizzen bestellt?
  13. SQL Aufgaben (Einstieg)

    PIZZA ID Int(16) NAME Text (30) TEXT TEXT(80) PREIS_NORMAL DEZ(4,2) PREIS_FAMILY DEZ(4,2) KUNDE ID INT(16) EMAIL Text (50) PW Text (16) NN Text (30) VN Text (30) STR Text (30) NR Text (10) PLZ Text (5) ORT Text (30) TEL Text (30) ZUTATEN ID INT(16) NAME TEXT(50) ZUTATEN_LISTE ID INT(16) ZUTAT INT(16) PIZZA INT(16) BESTELLUNG ID INT(16) KUNDE INT(16) PIZZA INT(16) ANZ_NORMAL INT(11) ANZ_FAMILY INT(11) Was vorgegeben war: INSERT INTO pizza VALUES (1,'Hawai','Pizza mit Salami,<br>K&auml;se und Ananas',4.00,7.50); INSERT INTO pizza VALUES (2,'Vegetariana','vegetarische Pizza<br>mit Gr&uuml;nzeug',4.00,7.50); INSERT INTO pizza VALUES (3,'Chicken','Pizza mit H&uuml;hnerfleisch',4.80,9.00); INSERT INTO pizza VALUES (4,'American','Pizza mit Mais, K&auml;se,<br>Salami und Essigg&uuml;rkchen',5.50,10.50); INSERT INTO pizza VALUES (5,'Funghi','Pizza mit Pilzen',3.50,6.00); INSERT INTO pizza VALUES (6,'CGI','Pizza mit Perl-Zwiebeln<br>und Cookies',8.00,15.00); INSERT INTO kunde VALUES (1,'a.fortenbacher@fhtw-berlin.de','184895e9508f3f41','Fortenbacher','Albrecht','An der Forst','12','15370','Petershagen','033439 77907'); INSERT INTO kunde VALUES (2,'Claudia@Volk.de','6036ac6925245ec8','Volk','Claudia','Sonnenallee','20','12345','Berlin','030 88775'); INSERT INTO kunde VALUES (3,'a@f','077baa8f491e1489','f','a','adf','12','15370','p','011'); INSERT INTO kunde VALUES (4,'cristina.dammer@web.de','398e7500242ab90c','Dammer','Cristina','An der Forst','12','15370','Petershagen','033439 77907'); INSERT INTO zutaten VALUES (1, 'Käse'); INSERT INTO zutaten VALUES (2, 'Tomaten'); INSERT INTO zutaten VALUES (3, 'Salami'); INSERT INTO zutaten VALUES (4, 'Pilze'); INSERT INTO zutaten VALUES (5, 'Ananas'); INSERT INTO zutaten VALUES (6, 'Hühnerflleisch'); INSERT INTO zutaten VALUES (7, 'Mais'); INSERT INTO zutaten VALUES (8, 'Essiggurken'); INSERT INTO zutaten VALUES (9, 'Zwiebeln'); INSERT INTO zutaten VALUES (10, 'Cookies'); INSERT INTO zutaten_liste (id, zutat, pizza) VALUES (1, 1, 1); INSERT INTO zutaten_liste (id, zutat, pizza) VALUES (2, 3, 1); INSERT INTO zutaten_liste (id, zutat, pizza) VALUES (3, 5, 1); INSERT INTO zutaten_liste (id, zutat, pizza) VALUES (4, 2, 2); INSERT INTO zutaten_liste (id, zutat, pizza) VALUES (5, 4, 2); INSERT INTO zutaten_liste (id, zutat, pizza) VALUES (6, 5, 2); INSERT INTO zutaten_liste (id, zutat, pizza) VALUES (7, 7, 2); INSERT INTO zutaten_liste (id, zutat, pizza) VALUES (16, 8, 2); INSERT INTO zutaten_liste (id, zutat, pizza) VALUES (17, 9, 2); INSERT INTO zutaten_liste (id, zutat, pizza) VALUES (8, 6, 3); INSERT INTO zutaten_liste (id, zutat, pizza) VALUES (9, 1, 4); INSERT INTO zutaten_liste (id, zutat, pizza) VALUES (10, 3, 4); INSERT INTO zutaten_liste (id, zutat, pizza) VALUES (11, 7, 4); INSERT INTO zutaten_liste (id, zutat, pizza) VALUES (12, 8, 4); INSERT INTO zutaten_liste (id, zutat, pizza) VALUES (13, 4, 5); INSERT INTO zutaten_liste (id, zutat, pizza) VALUES (14, 9, 6); INSERT INTO zutaten_liste (id, zutat, pizza) VALUES (15, 10, 6); INSERT INTO bestellung VALUES (1,3,1,2,1); INSERT INTO bestellung VALUES (2,3,6,0,1); ID = PK bestellung_KUNDE_FK = FK bestellung_PIZZA_FK = FK zutaten_liste_ZUTAT_FK = FK zutaten_liste_PIZZA_FK = FK
  14. SQL Aufgaben (Einstieg)

    Hi,seit zwei Tagen versuche ich mich an SQL. Könntet ihr mir zu den folgenden Aufgaben ein Lösungsansätze geben, leider fehlt mir der Umgang mit SQL noch schwer, da die Logik von Programmiersprachen stark abweicht. Logisch, ist ja auch keine Programmiersprache. Ich benutze MySQL-Workbench.Aufgaben:1. Selektiere den Kunden und seine Lieblingspizza, die er am häufigsten bestellt hat.2. Welche Pizza hat die meisten Zutaten?3. Welche Pizza ist teurer als 9€ in normaler Größe?4. In welchen Städten gibt es Kunden (jede Stadt nur einmal listen).5. Was kostet die Bestellung, des Kunden mit der Email Adresse „a@f“.6. Was ist der Durschnittspreis aller Bestellungen.7. Welche ist die teuerste Bestellung?8. Zeige alle Kunden an, deren Bestellwert über 15€ liegt.9. Liste alle Pizzen, nach normalem Preis aufsteigend sortiert, auf.
  15. Studium oder Lehrstelle?

    Genau das hatte ich auch vorgehabt mit dem Laptop. Per VM Linux zu nutzen. Dachte mir, es wäre nicht schlecht sich Kenntnisse dazu anzueignen. Danke für den Tipp mit dem Studenrabatt. Vielleicht könnte ich auch im Vorfeld bei der Hochschule nachfragen, ob vor Studienbeginn dieser Rabatt gültig ist. Bisher nicht. Ich habe aber bereits den Zulassungsantrag, den ich ausfüllen und unterschreiben wollte, um gleichdarauf mit meinen weiteren Unterlagen (Lebenslauf, Nachweise Hochschulzugangsberechtigung, Praktikanachweise...) der Hochschule zuzusenden. Allerdings muss ich dazu sagen, dass ich mir bereits das Modulhandbuch aus dem Internet besorgt habe, um mich im Vorfeld über die Module zu informieren. Da geb ich dir recht. Viele sagen, dass der Laptop in der Vorlesung nur stört. Ich würde einen solchen tatsächliche nur für die praktische Arbeit nutzen wollen, um mit meiner gewohnten Software zu arbeiten. Z. B. für Projektarbeiten mit Powerpoint, Word, Excel, MS Studio, etc.
×