Ausgewählte Datensätze in DB-Tabelle schreiben

JonnieWalker

Bekanntes Mitglied
Hallo Leute,

hab mal wieder ne Frage
Wie kann ich aus meine JList die gewähten Datensätze von der Applikation in eine SQL-DB die ich habe übergeben.
Was muss ich hier ändern damit er das macht???

Java:
public void Auswaehlen(Object[] selectedValues) {
        BufferedWriter datei = null;
        try{
            String file = "H:\\Shabani\\old_version\\DarstellungPflichth\\Neu Textdokument.";
            datei = new BufferedWriter(new FileWriter(file));
            for(int i=0; i < selectedValues.length; i++){
                datei.write(selectedValues[i].toString());
                datei.newLine();
            }
        }catch(Exception ex){
            }finally{
                try{
                    datei.close();
                }catch(Exception ex){

                }
            }

    }

hier schreibt er mir die gewählten Datensätze in eine Textdokument das ja gut ist.
aber wie lass ich ihn das in die DB schreiben???
 
Du musst Dir ein entsprechendes Instert Statement aufbauen. Am besten man verwendet ein PreparedStatement.
Hier mal ein rudimentäres Bsp.:

Java:
PreparedStatement pStmt = connection.prepareStatement("Insert into MyTable values(?, ?, ?)");

public void insertValues(String[] values) {
    pStmt.setString(1, values[0]);
    pStmt.setInt(2, Integer.valueOf(values[1]));
    pStmt.setString(3, values[2]);
    pStmt.executeUpdate();
}
 
aber geht das ich lass mir meine datensätze aus der einen db-tabelle ausgeben ne und die ich anklicke die will ihc in eine andere tabelle übergeben???
das ist da sja und so wie ich den code verstehe schreib ich hier neue:S
das will ich aber nicht, er soll nur die vorhandenen datensätze in eine andere tabelle schreiben.
danke😀
 
War ja nur ein Bsp. Du kannst Dir ja Dein Statement so aufbauen wie Du es brauchst.

Aber wenn ich Dich richtig verstehe willst Du Datensätze aus einer Tabelle in eine andere kopieren. Sind denn alle relavanten Informationen in selectedValues enthalten, dann sollte ja ein einfaches Insert reichen.
 
nein nein das bsp ist echt gut.
ja da sist mein problem mit dem statement.
ich will z.b meier anklicken in der tabelle die ich mir ausgeben lassen habe und in die andere übergeben😀
deswegen weiss ich nicht wie ich mien statemtn aufbauen soll:S
 
was mach ich falsch????
der zeigt mir fehler an:S

Java:
    public void Auswaehlen(int wordid, String word) {
        
        try{
           String SQL = null;

            SQL = "insert into swords values (?,?)";
            PreparedStatement befehl = v.prepareStatement(SQL);
                befehl.setString(1, values[0]);                                          //er sagt values kennt er nicht
                befehl.setInt(2, Integer.valueOf(values[1]));                       //hier genau so
                befehl.executeUpdate();

        }catch(Exception ex){
            }
    }
 
Woher soll er das auch kennen, ist ja nirgends definiert.
Soll vermutlich so oder so ähnlich lauten:
Java:
befehl.setInt(1, wordid);
befehl.setString(2, word);
 
public void Auswaehlen(Object[] selectedValues) {

int[] values = null;
String[] value = null;
try{
String SQL = null;


SQL = "insert into swords (wordid, word) values (?,?)";
PreparedStatement befehl = v.prepareStatement(SQL);
befehl.setString(1, value[0]);
befehl.setInt(2, Integer.valueOf(values[1]));
befehl.execute();
befehl.close();

}catch(Exception ex){
}
}

er macht immer noch nichts und ich hab echt kp wieso:S:S:S
 
public void Auswaehlen(Object[] value) {
try {
String SQL = "insert into swords values (?)";

for (int i = 0; i < value.length; i++) {
PreparedStatement befehl = v.prepareStatement(SQL);
befehl.setInt(1, (Integer) value);
befehl.execute();
befehl.close();
}
} catch (Exception ex) {
System.out.println(ex);
}
}

so leute ich habs versucht aba es passiert nichts?
und ich bekomm diese exception:
java.lang.ClassCastException: darstellungpflichth.Words cannot be cast to java.lang.Integer

wenn ich einen String verwende kommt die gleiche Exception nur mit java.lang.string

wieso schreibt er meine gewählten datensätze nicht in die andere tabelle:S:S:S:S
 
Du übergibt's ein Feld das aus Words besteht.
Also musst Du vermutlich nach Words casten und dann daraus die notwendigen Attribute auslesen, die in die Datenbank geschrieben werden sollen.
 
Fertig machen kann ich das nicht, kenne ja Deine Klasse Words nicht.
Aber genauso wie Du versucht hast die Objekte aus dem Feld nach Integer (
Code:
(Integer) value[i];
) zu casten kannst Du diese auch nach Words casten.
Java:
Words words = (Words)value[i];
Geht natürlich nur, wenn die Objekte in value immer vom Typ Words sind.
 

Zurück
Oben