Und, was übergibst du der Funktion beim Aufruf? Du wirst wohl kein Model übergeben
Announcement
Collapse
No announcement yet.
Werte aus SQL Datenbank holen
Collapse
X
-
Keine Ahnung ich hab das mal so hingeschrieben wie oben vorgeschlagen.....
Ich komm mit dem Debugger auch nicht dass ich schauen kann welche Wert dort drin sind usw weil dann eine Fehlermeldung kommt mit dem Class Editor und dem Button wo dann die Connector Datei vorgewählt ist...!
Wenn nämlich die Zeile mit "Statement statement=connection.createStatement();" ausgeführt wird, springt der Debugger in ein neues Fenster mit der Bezeichnung "ConnectionImpl.class" und darin steht dann "Class File Editor" und dann "Source not found" und darunter ist dann ein Button mit "Change Attached Source" - wenn ich den klick ist die SQL Connector DAtei vorgewählt......!
Das ist mein Code
Code:public String fillTextfeld() { String result=null; if(connection==null) { System.out.println("Abfrage nicht möglich, Connection ist null"); return result; } try { Statement statement=connection.createStatement(); ResultSet resultSet=statement.executeQuery("SELECT * FROM einnahmen"); defaultTableModel.setRowCount(0); while(resultSet.next()) { result=(result+resultSet.getString(1)); defaultTableModel.addRow(new Object[] { resultSet.getInt(1), resultSet.getString(2), resultSet.getInt(3), resultSet.getInt(4), resultSet.getInt(5), resultSet.getFloat(6), resultSet.getDate(7), resultSet.getFloat(8), resultSet.getInt(9), }); } resultSet.close(); statement.close(); } catch(SQLException ex) { System.out.println("SQL-Exception bei der Abfrage: "+ex.getMessage()); } return result; }
Comment
-
Sorry, für mich ist jetzt hier Ende. Ich post dir laufen Code. Anstatt den zu übernehmen veränderst du den ohne Plan.
Lerne die Grundlagen.
Logisch ist in deiner Methode das Model null. wo übergibst du es? Da gehört das globale Model aus der GUI-Klasse hin, damit das die Tabelle füllt.
Warum habe ich wohl - und das ist jetzt das 3. Mal - gesagt, du sollst eine neue Methode schreiben. Die habe ich dir oben komplett hingeschrieben.
Dein jetziger Ansatz in der Methode ist kompletter MurksChristian
Comment
-
Ja ich hab keine Ahnung darum frag ich ja.....! :-)
Du meinst mit der kompletten Methode wohl diesen Code:
Code:public void fillTable(DefaultTableModel defaultTableModel) { if(connection==null) { System.out.println("Abfrage nicht möglich, Connection ist null"); return; } try { Statement statement=connection.createStatement(); ResultSet resultSet=statement.executeQuery("SELECT * from........"); while(resultSet.next()) { System.out.println(resultSet.getString(1)); System.out.println(resultSet.getString(2)); } resultSet.close(); statement.close(); } catch(SQLException ex) { System.out.println("SQL-Exception bei der Abfrage: "+ex.getMessage()); } }
Code:public String fillTextfeld() { String result=null; if(connection==null) { System.out.println("Abfrage nicht möglich, Connection ist null"); return result; } try { Statement statement=connection.createStatement(); ResultSet resultSet=statement.executeQuery("SELECT * FROM einnahmen"); defaultTableModel.setRowCount(0); while(resultSet.next()) { result=(result+resultSet.getString(1)); defaultTableModel.addRow(new Object[] { resultSet.getInt(1), resultSet.getString(2), resultSet.getInt(3), resultSet.getInt(4), resultSet.getInt(5), resultSet.getFloat(6), resultSet.getDate(7), resultSet.getFloat(8), resultSet.getInt(9), }); } resultSet.close(); statement.close(); } catch(SQLException ex) { System.out.println("SQL-Exception bei der Abfrage: "+ex.getMessage()); } return result; }
Ich mein genau das hier ist ja der Knackpunkt der ganzen Angelegenheit, das würd ich halt jetzt schon noch durchziehen wollen!
Also wenn ich die Methode neu einfügen muss, wohin damit und was ist mit dem vorhandenen Code?
Comment
-
Datenmanager bedeutet jetzt eine neue Class/Datei anzulegen (das der Code bei 1 beginnt) oder unter public String fillTextfeld() in die aktuelle Datei zu schreiben oder wohin?
Naja mir ist schon klar dass noch weiterer Code hingeschrieben werden kann aber dann muss ich ja weitere Änderungen durchführen?
Also momentan kapier ich einfach nicht was ich mit dem gegebenen Code anfangen hätte sollen wenn nicht die vorhanden SQL Abfrage eben dahingehend abzuändern.... das ist mein Problem!
Comment
-
Was ist eine Methode einer Klasse?
Wie fügt man eine neue hinzu?
http://michael.hahsler.net/JAVA/pdf/03_3Methoden.pdfChristian
Comment
-
also ich hab jetzt folgenden Code:
Code:public String fillTextfeld() { String result=null; if(connection==null) { System.out.println("Abfrage nicht möglich, Connection ist null"); return result; } try { Statement statement=connection.createStatement(); ResultSet resultSet=statement.executeQuery("SELECT * FROM einnahmen"); while(resultSet.next()) { result=(result+resultSet.getString(1)); defaultTableModel.addRow(new Object[] { resultSet.getInt(1), resultSet.getString(2), resultSet.getInt(3), resultSet.getInt(4), resultSet.getInt(5), resultSet.getFloat(6), resultSet.getDate(7), resultSet.getFloat(8), resultSet.getInt(9), }); } resultSet.close(); statement.close(); } catch(SQLException ex) { System.out.println("SQL-Exception bei der Abfrage: "+ex.getMessage()); } return result; } //Füllen der Tabelle mit Daten public void fillTable(DefaultTableModel defaultTableModel) { if(connection==null) { System.out.println("Abfrage nicht möglich, Connection ist null"); return; } try { Statement statement=connection.createStatement(); ResultSet resultSet=statement.executeQuery("SELECT * from einnahmen"); defaultTableModel.setRowCount(0); while(resultSet.next()) { defaultTableModel.addRow(new Object[] { resultSet.getInt(1), resultSet.getString(2), resultSet.getInt(3), resultSet.getInt(4), resultSet.getInt(5), resultSet.getFloat(6), resultSet.getDate(7), resultSet.getFloat(8), resultSet.getInt(9), }); } resultSet.close(); statement.close(); } catch(SQLException ex) { System.out.println("SQL-Exception bei der Abfrage: "+ex.getMessage()); } }
Comment
-
Ja dann kann ich die obere Methode löschen und nur die untere zählt praktisch oder wie?
Dann müsste ich ja auch in der zweiten Datei mit der Grafik auch zb das bei den Buttons ändern, weil dort die Methode aufgerufen wird - String ergebnis=ButtonDBTablezweite.getInstance().fillTex tfeld(); in Zeile 95 der anderen Datei...!
Das alles verwirrt mich halt momentan......... weil wenns nicht dransteht nehm ich an es muss nicht gemacht werden, dann kann ich aber nicht die Zeile mit fillTextfeld() löschen......!
Comment
-
Ja dann kann ich die obere Methode löschen und nur die untere zählt praktisch oder wie?
Copy & Paste in deinen DatenManager
nicht verstanden. ZUSÄTZLICH IN DIE KLASSE EINFÜGEN!
Das alles hat keinen Sinn solange du die Grundlagen nicht beherrscht, was ist eine Klasse, was ist eine Methode usw.Christian
Comment
-
Dann müsste ich ja auch in der zweiten Datei mit der Grafik auch zb das bei den Buttons ändern, weil dort die Methode aufgerufen wird - String ergebnis=ButtonDBTablezweite.getInstance().fillTex tfeld(); in Zeile 95 der anderen Datei...!Christian
Comment
-
Was hast du an
Copy & Paste in deinen DatenManager
Bei dem bekannten Kenntnisstand und vor allem da klar ist dass du in NetBeans und ich in Eclipse arbeite wäre solch ein Wort einfach klar als missverständlich zu beurteilen gewesen...! ;-)
"Unterhalb der fillTextfield() Methode neu einfügen" hätte alles gesagt..... unmissverständlich!!
Das alles hat keinen Sinn solange du die Grundlagen nicht beherrscht, was ist eine Klasse, was ist eine Methode usw.
Comment
Comment