mit Werten aus einer mysql datenbank in java rechnen

Naz

Mitglied
Hallo allerseits,

wie eigentlich schon der Titel sagt suche ich nach Hilfe, um mit Werte aus einer Datenbank für eine berechnung in java zu integrieren.
Ich habe bereits in mysql eine datenbank angelegt, mit entsprechenden tabellen. Jetzt müsste ich Werte aus der Datenbank holen um berechnungen durchzuführen.
Wie z.B. :
In der Tabelle sind Werte wie Artikelnummer, Preis, gewicht, menge etc drin. Meine Absicht ist z.B. für die Artikelnummer 1234 gewicht für die angegebene menge zu berechnen und diesen dann in einer neuen Tabelle abzuspeichern. Eine Tabelle in java kann ich bereits abfragen und anzeigen, dafür nutze ich die result.next() Methode. Allerdings kann ich sie nur anzeigen lassen. Weiss aber nicht, wie ich dann die Werte nutzen kann.

Da ich ziemlich neu in Java Programmierung bin, wäre super, wenn ihr mir weiterhelfen würdet.

Bedanke mich schonmal im Voraus. :)
 

faetzminator

Gesperrter Benutzer
Täusch ich mich da, oder kann die Aufgabe komplett als SQL-Statement geschrieben werden? Ansonsten kannst du natürlich in Java über die Resultate iterieren, Infos sammeln und eine zweite Query absetzen.
 

c_sidi90

Top Contributor
Ich versteh nur nicht, wo dein Problem ist. Wie du sagst kannst du bereits Werte aus einem ResultSet auslesen. Da du dich schon mit SQL in Verbindung mit Java befasst, gehe ich davon aus, du hast bereits ein fundiertes Wissen über Variablen. Also wäre der logische Schritt ja dir die Werte aus dem ResultSet in temporäre Variablen zu speichern und diese für die Berechnung zu nutzen.

Die Klasse ResultSet verfügt über get-Methoden über die du deine Werte in Variablen beliebiger Datentypen speichern kannst. So kannst du z.B.

Java:
int value = resultset.getInt(Index);
int value2 = resultset.getInt(Index);

int result =  value + value2;
 

Naz

Mitglied
Genau richtig, würde gern ein SQL-fähiges Java Programm erstellen. Das ist erstmal noch ein Bruchteil von dem Programm. Später brauche ich diese Werte, um weitere Berechnungen durchzuführen und mit anderen Werten zu vergleichen.
Danach habe ich die Idee das ganze in GUI darzustellen, also den Code in GUI einzubinden, so dass es für den Anwender praktisch einfacher einsehbarer ist. Das heisst also, wenn z.b. der Anwender eine Abfrage für einen bestimmten Wert benötigt, oder selbst ein wert eingibt um eine Berechnung durchzuführen. Ich hoffe ich konnte es etwas besser erklären.

Also die Werte sind eigentlich soweit gespeichert:

while (result.next()) {
int nummer_id = result.getInt("nummer_id"); // Alternativ: result.Int(1);
int teilenummer_id = result.getInt("teilenummer_id"); // Alternativ: result.getInt(2);
String bezeichnung = result.getString("bezeichnung");
int menge = result.getInt("menge");


System.out.println( nummer_id + " " + teilenummer_id + " " + bezeichnung + " " + menge);

Allerdings kann ich diese erstmal in einer test klasse nur ausgeben.

Ich denke statt System.out.println( nummer_id + " " + teilenummer_id + " " + bezeichnung + " " + menge); kann ich hier doch eine weitere Methode einfügen um die Berechnung zu machen oder?
 

Naz

Mitglied
Java:
while (result.next()) {
int nummer_id = result.getInt("nummer_id"); // Alternativ: result.Int(1);
int teilenummer_id = result.getInt("teilenummer_id"); // Alternativ: result.getInt(2);
String bezeichnung = result.getString("bezeichnung");
int menge = result.getInt("menge");


System.out.println( nummer_id + " " + teilenummer_id + " " + bezeichnung + " " + menge);

so ist es besser zu erkennen denke ich :)
 

Naz

Mitglied
SQL:
SELECT (SPALTE1 * SPALTE2) + (SPALTE3) AS ERGEBNISS FROM TABELLE;

Die Berechnung würde ich dann in eine neue Tabelle einfügen. Also kann ich vorher eine leere tabelle erstellen und die ergebnisse dort abspeichern und die Spalten als ergebnis1, ergebnis2 etc benennen oder?
Beispiel: Ich erzeuge die neue Tabelle mit dem Namen Tabelle1 mit den spalten ergebnis1, ergebnis2 etc., ist dann der code so richtig?
SQL:
SELECT (SPALTE1 * SPALTE2) + (SPALTE3) AS ergebnis1 FROM TABELLE1;

Ich galube nicht oder? Ich müsste die Tabelle wählen von der ich auch die Daten hole. Ich denke ich müsste dannach INSERT ausführen, um in die neue Tabelle einzufügen.
 
S

SlaterB

Gast
du brauchst keine neue Tabelle mit Insert, wie richtig als Hilfsmittel erkannt,

SELECT (SPALTE1 * SPALTE2) + (SPALTE3) AS ERGEBNISS FROM TABELLE;

wäre eine Abfrage die bestimmte berechnete Daten ins ResultSet liefert,
oder die normalen Spalten abfragen und in Java zusammenrechnen

in deinen Beispielen 10:47 + 10:49 gibt es nur die Menge als int, keinen Preis oder sonstwas,
da kann man nicht viel zu sagen, nichts ist zu berechnen

wenn es in verschiedenen Tabellen steht dann in SQL ein Join oder in Java die Daten zusammenbringen,
das sind alles gewisse Denk- und Programmieraufwände, nicht ganz leicht falls du bisher von allem Bahnhof verstehen solltest?
 

Naz

Mitglied
So ich habe die Werte aus ResultSet ausgelesen und die Berechnung damit ausgeführt. Allerdings habe ich eine while Schleife benutzt und habe die Bedingung gegeben
Java:
while (id<=20) {}
, damit die Berechnung für jede id ausgerechnet werden soll, quasi für jedes Artikel einzeln. Allerdings besteht hier das Problem, dass ich 20mal die gleiche Ausgabe für die gleiche id habe und danach springt er erst zum nächsten. Ist hier die while Schleife nicht korrekt? Oder habe ich die Bedingung falsch eingegeben? Ich habs mit for auch versucht klappt irgendwie auch nicht.
 
S

SlaterB

Gast
weder ist dein konkretes Problem ersichtlich, noch warum eine Schleife bis 20 für 'Berechnung für jede id' nützlich ist

du musst mehr Code und Erklärungen liefern,

immer helfen auch Beispiele, 20 ist vielleicht etwas viel, aber nenne z.B. 5 fiktive Werteeinträge und was da einzeln, oder z.B. im 3er-Pack berechnet werden soll,
was passiert wenn die Schleife nicht da ist, was soll sich ändern
 

Naz

Mitglied
Hallo nochmals,

soweit habe ich das Problem gelöst :)

Jez habe ich eine weitere Frage. Wie kann ich die Daten die in Java berechnet sind wieder in die Datenbank einfügen?
Ich glaube ich habe es mir auch etwas kompliziert gemacht denke ich, ich glaube das ganze direkt in SQL zu schreiben wäre etwas einfacher gewesen.

Also zurück zu meiner Frage. Die Spalten sind in der Datenbank eingefügt, allerdings fehlen die in Java gerechneten Werte noch.
Könnt ihr mir sagen wie ich das machen kann? Bzw. mit welcher Methode?

Danke vielmals
 

BuckRogers

Bekanntes Mitglied
Hi,

so hier mal mein erster Beitrag ;)

zum Thema:

[JAVA=10]ResultSet rs1;

// Werte aus DB per Statement ziehen

int wert_1 = rs1.getInt("derIntWert");

// Dann machst du einfach einen zusammengesetzten Query:

Statement stmt;
stmt.executeQuery("INSERT INTO table_1 " + wert_1 + ";");

// Im Grunde musst du nur einen zusammengesetzten String aus Statement und Variablen basteln[/code]
 
Zuletzt bearbeitet:

Naz

Mitglied
Also ich habs mal ausprobiert klappt leider nicht :(

Java:
private static Connection getInstance()
    {
        if(conn == null)
            new Datenbank();
        return conn;
    }
 
    /**
     * Schreibt die Eingangsdatenliste in die Konsole
     */
    public static void eingangsdaten()
    {
        conn = getInstance();
         
        if(conn != null)
        {
            // Anfrage-Statement erzeugen.
            Statement query;
           
            try {
                query = conn.createStatement();
 
                // Ergebnistabelle erzeugen und abholen.
                String sql = "SELECT * FROM db.daten";
                ResultSet result = query.executeQuery(sql);
                System.out.println("nr \t | bezeichnung \t | menge \t | gewicht \t | fuellmenge \t | art \t | typ \t | laenge \t | breite \t | gewicht_neu \t | verbrauch \t ");
                System.out.println("-----------------------------------------------------------------------------------------------");
                
                // Ergebnissätze durchfahren.
                while (result.next()) {  
                    int nr = result.getInt("nr");
                    int menge = result.getInt("menge");
                    float gewicht = result.getFloat("gewicht");
int fuellmenge = result.getInt("fuellmenge");
                    
                    
                    if (nr > 0) {
                        float kg;
                        kg = gewicht;
                        
                        int fm;
                        fm = fuellmenge;
                        
                        float kglt;
                        kglt = kg * fm;
                                              
                                            
                                        
                        System.out.print(result.getInt("nummer") + "\t | ");
			
			System.out.print(result.getString("bezeichnung") + "\t | ");
			System.out.print(result.getInt("menge") + "   | ");
			System.out.print(result.getDouble("gewicht")+ "\t | ");
                        System.out.print(result.getInt("fuellmenge")+ "\t | ");
                        System.out.print(kglt + "\t | " );
                        System.out.println();

                    }
                    
                                    }
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
    }
}

ich habe hinter der letzten Ausgabe
Java:
                        Statement stmt = null;
                        stmt.executeQuery("INSERT INTO db.daten (gewicht_neu) VALUE" +kglt ";");

eingefügt, klappt nicht. Weiss nicht wo mein Fehler liegt.???:L
 
Zuletzt bearbeitet:

Naz

Mitglied
also ich habe bereits eine leere spalte in die Datenbank eingefügt, jetzt möchte ich nur noch die Werte, die ich in java berechnet habe, in die neue Spalte in der Datenbank einfügen, weill ich diese Werte immer wieder gebrauchen werde.
 

Michael...

Top Contributor
Java:
Statement stmt = null;
stmt.executeQuery("INSERT INTO db.daten (gewicht_neu) VALUE" +kglt ";");
Naja,
Code:
stmt = null
ist ja wohl Schmarrn. An nichts kann man eben nichts aufrufen.
Etwas eine Datenbankfeld eintragen geht mit einem
Code:
Update ....
Statement.

Besser - und einfacher - wäre es überigens mit PreparedStatments zu arbeiten.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
A Daten aus einer HashMap aus einer DB speichern und mit neuen Werten vergleichen Java Basics - Anfänger-Themen 8
K Übergabe von Werten (zweidimensionales Array) aus einer Methode an zweidimensionales Array in main() Java Basics - Anfänger-Themen 3
D Sortieren von int Werten von Objekten in einer LinkedList, kann nicht auf int Werte zugreifen Java Basics - Anfänger-Themen 3
P Vererbung Auslesen von Werten einer ArrayList Java Basics - Anfänger-Themen 30
P Initialisierung einer 5*5 Matrix mit best. Werten Java Basics - Anfänger-Themen 2
S Elemente einer Liste mit true / false Werten Java Basics - Anfänger-Themen 3
A Abspeichern von werten in einer textfile. Java Basics - Anfänger-Themen 2
C Innerhalb einer *.csv Datei nach Werten suchen ? Java Basics - Anfänger-Themen 10
N Array beim erstellen mit Werten füllen Java Basics - Anfänger-Themen 6
M Kommandozeilenparamter als EINEN String werten Java Basics - Anfänger-Themen 5
T PDF-Formula (XFDF) via Mail - Betreff mit Werten aus PDF-Formular ergänzen Java Basics - Anfänger-Themen 2
A Werten aus dem Text ausliesten Java Basics - Anfänger-Themen 6
Csircc Neuer Array mit geringerer Länge und selben werten. Java Basics - Anfänger-Themen 2
M Wie kann eine Methode (string) eine andere Methode (void) mit zufälligen int-Werten aufrufen? Java Basics - Anfänger-Themen 4
U Erste Schritte nextGaussian zwischen zwei Werten Java Basics - Anfänger-Themen 19
C Methode Grouping mit Werten ausgeben Java Basics - Anfänger-Themen 2
J Java Queue mit default Werten erstellen Java Basics - Anfänger-Themen 4
W Mehrfach das gleiche Attribut für ein Objekt erzeugen (mit verschiedenen Werten) Java Basics - Anfänger-Themen 2
D Input/Output fehlerhafter Algorithmus zum Ersetzen von Array-Werten nach logischem Schema Java Basics - Anfänger-Themen 1
M Arrays mit mehreren Werten über JOptionPane initialisieren Java Basics - Anfänger-Themen 12
N Speichern von Werten in Variablen nach Schließen des Programms Java Basics - Anfänger-Themen 3
O zwei Arrays nach Werten durchsuchen und zusammenfügen Java Basics - Anfänger-Themen 3
B Rückgabe von zwei Werten: String und double Java Basics - Anfänger-Themen 14
Henri Vergabe von undeklarieten Werten Java Basics - Anfänger-Themen 64
V Schleife für das Einlesen von Werten für int Variablen, die Bestandteil von Arrays sein sollen Java Basics - Anfänger-Themen 16
E OOP Array anlegen mit unterschiedlichen Werten Java Basics - Anfänger-Themen 8
R Eingabe String umwandeln zu Integer Werten Java Basics - Anfänger-Themen 8
M Speichern von Werten in Array Java Basics - Anfänger-Themen 1
P Input/Output Bestimmte Anzahl von Werten in einem Array an Methode übergeben Java Basics - Anfänger-Themen 2
M Übergabe von Werten Java Basics - Anfänger-Themen 10
Bregedur Methoden Matcher und Pattern bei sich wiederholenden Werten Java Basics - Anfänger-Themen 1
M Java Arrays mit Werten initialisieren Java Basics - Anfänger-Themen 3
G Interpolation von Werten im 3D-Raum Java Basics - Anfänger-Themen 3
N Zählen von Rationalen Werten eines Arrays Java Basics - Anfänger-Themen 10
R Objekt erstellen - Attribute mit mehreren Werten Java Basics - Anfänger-Themen 1
F JButton [] mit Werten hinterlegen Java Basics - Anfänger-Themen 10
L Frage zur Rückgabe von Werten bei Methoden Java Basics - Anfänger-Themen 4
L Array mit Werten belegen Java Basics - Anfänger-Themen 7
Crazynet jTable erste Zeile mit deffinierten Werten Java Basics - Anfänger-Themen 0
J JFrame ausgabe von Werten Java Basics - Anfänger-Themen 9
F Array mit Scanner-Werten Java Basics - Anfänger-Themen 4
W Klassen [GELÖST] Objekte während der Laufzeit mit neuen veränderten Werten beliebig oft initialisieren Java Basics - Anfänger-Themen 2
J ArrayList<int[]> wird beim hinzufügen von werten komplett überschrieben warum? Java Basics - Anfänger-Themen 1
GreyFox Object dynamisch mit werten versehen. Java Basics - Anfänger-Themen 4
C Arrays zusammenfügen mit abwechselnden Werten Java Basics - Anfänger-Themen 3
F Map nach Werten durchsuchen Java Basics - Anfänger-Themen 3
S Suche richtigen Typ für Variabel mit den Werten (neu, gebraucht, beschädigt) Java Basics - Anfänger-Themen 7
V Methoden Matrix als 1D Array mit Werten füllen Java Basics - Anfänger-Themen 12
T Liste mit 2 Werten pro Eintrag Java Basics - Anfänger-Themen 9
F Effizientes Lesen von 65 Datein mit Boolean Werten Java Basics - Anfänger-Themen 6
A OOP Buchstaben mit ASCII Werten darstellen Java Basics - Anfänger-Themen 1
M Ausgeben eines 2D Arrays mit int UND String werten - BLUEJ! Java Basics - Anfänger-Themen 4
V Anzahl von gleichen Werten in einem Int-Array ermitteln Java Basics - Anfänger-Themen 4
M Mit Werten aus Arrays in anderen Methoden rechnen? Java Basics - Anfänger-Themen 3
L Array - Nach 2 gleichen Werten stoppen Java Basics - Anfänger-Themen 5
X Methoden Vertauschen von 2 Werten eines Arrays Java Basics - Anfänger-Themen 13
J Subtraktion von double Werten Java Basics - Anfänger-Themen 3
P Objekt mit Werten aus Array füllen Java Basics - Anfänger-Themen 10
S Erfahrungswerte von schnelles durchlaufen von Listen mit 2 Werten Java Basics - Anfänger-Themen 10
T Externes Programm mit Werten versorgen Java Basics - Anfänger-Themen 4
T Ausgabe von Werten des Typs double Java Basics - Anfänger-Themen 8
J Zuweisung von gesicherten Werten funktioniert nicht Java Basics - Anfänger-Themen 9
P Methoden Übergabe von Werten Java Basics - Anfänger-Themen 7
D Regex mit Werten aus txt Datei Java Basics - Anfänger-Themen 2
C Mit if Überprüfung von drei Werten durchführen Java Basics - Anfänger-Themen 6
C Comparator mit Double Werten? Java Basics - Anfänger-Themen 12
J Datentypen Fehler bei Berechnung mit Double und Int-Werten Java Basics - Anfänger-Themen 22
T Hashmap mit mehreren Werten Java Basics - Anfänger-Themen 9
B Zweidimensionales Array mit boolean Werten Java Basics - Anfänger-Themen 3
F grafische Anzeige von Werten Java Basics - Anfänger-Themen 2
darekkay Datentypen HashSet bzw. LinkedList mit Werten initialisieren Java Basics - Anfänger-Themen 3
U Datentypen Ungenauigkeit von Double Werten Java Basics - Anfänger-Themen 5
L Datentypen Methode zum Abspeichern von Variablen mit größeren int-Werten Java Basics - Anfänger-Themen 6
Rudolf Datentypen Vectorliste mit Werten in zufälliger Anordnung Java Basics - Anfänger-Themen 5
1 Ständige Abfrage von Werten Java Basics - Anfänger-Themen 19
M Image zeichenen mit Double Werten Java Basics - Anfänger-Themen 4
J double-Array mit Werten von Methode füllen und an andere Methode übergeben Java Basics - Anfänger-Themen 3
S Minimum von 5 Werten Java Basics - Anfänger-Themen 6
H Checkbox mit Werten hinterlegen Java Basics - Anfänger-Themen 4
M property mit mehreren werten Java Basics - Anfänger-Themen 3
F Speicherung von Werten?!? Java Basics - Anfänger-Themen 7
L Array - Eingabe von Werten Java Basics - Anfänger-Themen 2
S mit Werten aus 2D-Array rechnen Java Basics - Anfänger-Themen 32
C ArrayList mit Integer Werten Java Basics - Anfänger-Themen 6
babel ein Vector mit verschiedenen Werten auslesen und berechnen Java Basics - Anfänger-Themen 34
X reele Zahlen zwischen zwei Werten addieren Java Basics - Anfänger-Themen 11
E Übergabe von werten aus einem JDialog Java Basics - Anfänger-Themen 4
G art hashmap mit mehreren werten pro key Java Basics - Anfänger-Themen 2
S Ausgabe von Werten Java Basics - Anfänger-Themen 25
D Brauche Hilfe: Funktion zum Kombinieren von Werten Java Basics - Anfänger-Themen 5
G Eintragen von Werten in die DB Java Basics - Anfänger-Themen 3
C Chart mit zwei Datenlinien und überlagernden Werten Java Basics - Anfänger-Themen 3
A Referenzen zu festen Werten machen? Java Basics - Anfänger-Themen 5
B 2d arrays mit Werten füllen Java Basics - Anfänger-Themen 22
M Problem bei der Übergabe von Werten Java Basics - Anfänger-Themen 7
W Funktionen mit Default werten Java Basics - Anfänger-Themen 10
A Probleme mit Ausgabe von Werten Java Basics - Anfänger-Themen 7
C Array mit int Werten füllen ( von z.B. 1 - x ) Java Basics - Anfänger-Themen 13
E ArrayList mit mehreren Werten Java Basics - Anfänger-Themen 10
E Array Werten Icons zuweisen Java Basics - Anfänger-Themen 3

Ähnliche Java Themen

Neue Themen


Oben