Haloa liebe Java-Freunde,
ich habe ein für mich als Einsteiger großes Problem zu lösen:
Ich frage eine Datenbank (h2) ab, indem ich über:
eine Verbindung aufbaue und per
vorgefertigte SQL-Dateien importiere und Strukturen anlege, bzw. Fülle.
Ich habe es geschafft, dass ich einen SQL-Befehl zum auslesen benutzen kann und in einer while-Schleife die auszulesenden Daten in eine HashMap packe, jetzt will ich diese Objekte der HashMap, bzw. nur das eine veränderte Feld wieder in die Datenbak schreiben, am besten mit dem "Update" aus SQL, dachte ich.
Meine Abfrage der Datenbank sieht wie folgt aus:
Wie schaffe ich es, dass ich per SQL das Feld Menge überschreiben kann?
MfG und danke für eure Hilfe!
RuffY2k
ich habe ein für mich als Einsteiger großes Problem zu lösen:
Ich frage eine Datenbank (h2) ab, indem ich über:
Code:
private Persistenz() {
try {
// Treiber für die DB Verbindung mittels des Class-Loaders in die VM laden.
Class.forName("org.h2.Driver");
// Verbindung zur DB herstellen.
conn = DriverManager.getConnection("jdbc:h2:~/test", "sa", "");
// DB Struktur und Daten erzeugen.
init();
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
}
eine Verbindung aufbaue und per
Code:
private void init() {
try {
conn.createStatement().execute(readFromFile("src/de/nak/w07c/db/create.sql"));
conn.createStatement().execute(readFromFile("src/de/nak/w07c/db/insert.sql"));
conn.commit();
} catch (SQLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
vorgefertigte SQL-Dateien importiere und Strukturen anlege, bzw. Fülle.
Ich habe es geschafft, dass ich einen SQL-Befehl zum auslesen benutzen kann und in einer while-Schleife die auszulesenden Daten in eine HashMap packe, jetzt will ich diese Objekte der HashMap, bzw. nur das eine veränderte Feld wieder in die Datenbak schreiben, am besten mit dem "Update" aus SQL, dachte ich.
Meine Abfrage der Datenbank sieht wie folgt aus:
Code:
public Map brauenPils() {
lagerBrauen = new HashMap();
try {
// Verbindung zur DB holen und Befehl ausführen
Statement st = Persistenz.instance().getConnection().createStatement();
ResultSet rs = st.executeQuery("select name, productid, menge from lager where ort = 'Hamburg'");
// Ergebnismenge der DB_Abfrage verarbeiten
int mb = 30; //später Operationen mit "echten" Variablen
int mz = -30;
while (rs.next()) {
Lager l1 = new Lager();
// Datensatz auslesen aus Datenbank und in ein Objekt kopieren.
l1.setProductid(rs.getLong("productid"));
l1.setName(rs.getString("name"));
l1.setMenge(mb*mz); //Operation zum verändern der Menge
// l1.setOrt(rs.getString("ort"));
// Das Bier der Map biere hinzufügen
lagerBrauen.put(new Long(l1.getProductid()), l1);
}
} catch (SQLException e) {
e.printStackTrace();
}
return lagerBrauen;
}
}
Wie schaffe ich es, dass ich per SQL das Feld Menge überschreiben kann?
MfG und danke für eure Hilfe!
RuffY2k