Hallo Java-Community!
Ich bin Java-Neuling und habe folgendes Problem. Will einzelne Datensätze (= Zeilen) aus einer AccessDB als Objekte in einer ArrayList speichern. Danach muss ich sowohl auf diese Objekte der ArrayList als auch auf die Eigenschaften der Einzelobjekte zugreifen können.
Nun mein Lösungsansatz:
Über eine Klasse ConnectionFactory hole ich mir die Vbdg zur Datenbank. Die Klasse DBManager ist das Bindeglied zur DB und liefert mir die Daten als ResultSet (Beides funktioniert!).
Hier der Programmcode der Klasse DBManager:
Ich kann mir sämtliche Daten auf der Konsole ausgeben lassen (= erste whileSchleife), allerdings schaffe ich es nicht, die Objekte der Klasse Sortimente zu bilden und in der ArrayList<Sortimente> zu speichern. Wenn ich mit der Methode allePakete.size() die Anzahl der Objekte ausgeben lassen, wird 0 zurückgegeben.
Hier der Code der Klasse Sortimente:
Was mache ich falsch? Ich bitte um Hilfe bzw. Tipps!
Danke im Voraus!
Ich bin Java-Neuling und habe folgendes Problem. Will einzelne Datensätze (= Zeilen) aus einer AccessDB als Objekte in einer ArrayList speichern. Danach muss ich sowohl auf diese Objekte der ArrayList als auch auf die Eigenschaften der Einzelobjekte zugreifen können.
Nun mein Lösungsansatz:
Über eine Klasse ConnectionFactory hole ich mir die Vbdg zur Datenbank. Die Klasse DBManager ist das Bindeglied zur DB und liefert mir die Daten als ResultSet (Beides funktioniert!).
Hier der Programmcode der Klasse DBManager:
Java:
package kdsmanagement.common;
import java.sql.*;
import java.util.ArrayList;
import kdsmanagement.model.bo.*;
import java.lang.reflect.*;
public class DBManager {
public static ArrayList<Sortimente> datensatzAuslesen()
{
ArrayList<Sortimente> allePakete = new ArrayList<Sortimente>();
try
{
Connection con = ConnectionFactory.getConnection();
Statement st = con.createStatement();
ResultSet ergebnis = st.executeQuery("select * from Pakete");
Sortimente sort = new Sortimente();
ResultSetMetaData rsmd = ergebnis.getMetaData();
int numberOfColumns = rsmd.getColumnCount();
while (ergebnis.next()) {
for (int i = 1; i <= numberOfColumns; i++) {
if (i > 1) System.out.print(", ");
String columnValue = ergebnis.getString(i);
System.out.print(columnValue);
}
System.out.println("");
}
while (ergebnis.next())
{
sort.setAuftragsnummer(ergebnis.getInt("Auftragsnummer"));
sort.setSchnittbild(ergebnis.getInt("Schnittbild"));
sort.setVerfuegbarkeitsdatum(ergebnis.getTimestamp("Verfuegbarkeitsdatum"));
sort.setLaenge(ergebnis.getInt("Laenge"));
sort.setBreite(ergebnis.getDouble("Breite"));
sort.setStaerke(ergebnis.getDouble("Staerke"));
sort.setPaketanzahl(ergebnis.getInt("Paketanzahlgerundet"));
sort.setPaketvolumen(ergebnis.getDouble("Paketvolumen"));
allePakete.add(sort);
System.out.println(allePakete.size());
}
ergebnis.close();
st.close();
con.close();
}
catch(Exception ex) {
System.err.print("Exception: ");
System.err.println(ex.getMessage());
}
return allePakete;
}
Ich kann mir sämtliche Daten auf der Konsole ausgeben lassen (= erste whileSchleife), allerdings schaffe ich es nicht, die Objekte der Klasse Sortimente zu bilden und in der ArrayList<Sortimente> zu speichern. Wenn ich mit der Methode allePakete.size() die Anzahl der Objekte ausgeben lassen, wird 0 zurückgegeben.
Hier der Code der Klasse Sortimente:
Java:
package kdsmanagement.model.bo;
import java.sql.*;
public class Sortimente {
private int Auftragsnummer;
private int Schnittbild;
private Timestamp Verfuegbarkeitsdatum;
private int Laenge;
private double Breite;
private double Staerke;
private int Paketanzahl;
private double Paketvolumen;
public void setAuftragsnummer(int Auftragsnummer){
this.Auftragsnummer = Auftragsnummer;
}
public int getAuftragsnummer(){
return (Auftragsnummer);
}
public void setSchnittbild(int Schnittbild){
this.Schnittbild = Schnittbild;
}
public int getSchnittbild(){
return (Schnittbild);
}
public void setVerfuegbarkeitsdatum(Timestamp Verfuegbarkeitsdatum){
this.Verfuegbarkeitsdatum = Verfuegbarkeitsdatum;
}
public Timestamp getVerfuegbarkeitsdatum(){
return (Verfuegbarkeitsdatum);
}
public void setLaenge(int Laenge){
this.Laenge = Laenge;
}
public int getLaenge(){
return (Laenge);
}
public void setBreite(double Breite){
this.Breite = Breite;
}
public double getBreite(){
return (Breite);
}
public void setStaerke(double Staerke){
this.Staerke = Staerke;
}
public double getStaerke(){
return (Staerke);
}
public void setPaketanzahl(int Paketanzahl){
this.Paketanzahl = Paketanzahl;
}
public int getPaketanzahl(){
return (Paketanzahl);
}
public void setPaketvolumen(double Paketvolumen){
this.Paketvolumen = Paketvolumen;
}
public double getPaketvolumen(){
return (Paketvolumen);
}
}
Was mache ich falsch? Ich bitte um Hilfe bzw. Tipps!
Danke im Voraus!
Zuletzt bearbeitet von einem Moderator: