Yahoo Clever wird am 4. Mai 2021 (Eastern Time, Zeitzone US-Ostküste) eingestellt. Ab dem 20. April 2021 (Eastern Time) ist die Website von Yahoo Clever nur noch im reinen Lesemodus verfügbar. Andere Yahoo Produkte oder Dienste oder Ihr Yahoo Account sind von diesen Änderungen nicht betroffen. Auf dieser Hilfeseite finden Sie weitere Informationen zur Einstellung von Yahoo Clever und dazu, wie Sie Ihre Daten herunterladen.
Anfänger-Frage zu Java?
Hallo Leute,ich habe eine Anfänger-Frage zu Java. In einer Aufgabe soll ich eine "Datenbank" füllen, sprich ich habe eine Klasse VMDatabase und die soll gefüllt werden. Am besten ihr schaut euch zuerst die Klassen an:
public class VMDatabase {
public static List<NetworkEntity> networkEntities = new ArrayList<NetworkEntity>();
}
public class NetworkEntity {
private String ip;
private List<VirtualMachine> virtualMachines;
}
public class VirtualMachine {
private String ip;
private long stressDuration;
private int stressCpuLast;
private int stressRamLast;
private boolean webTraffic;
private int activeUsers;
private String templatePath;
}
Ich habe also NetworkEntitys (Rechner) auf denen jeweils mehrere VirtualMachines (virtuelle Maschinen) und das soll so alles in die Database (Datenbank) eingetragen werden.
Nur habe ich keine Ahnung wie ich das denn angehen soll? Ich habe eine 4. Klasse, welche eine main-Methode besitzt...doch wie kann ich von dort nun die Datenbank füllen?
Please help :)
Edit: Also im Großen und Ganzen geht es darum, dass ich das lokale Netzwerk durchsuchen und jeden Rechner (NetworkEntitiy) in diese Datenbank, die gerne als interner Datenbestand gehandhabt werden kann, abspeichern soll. Auf jedem Rechner laufen virtuelle Maschinen (VirtualMachine) und auch diese soll ich in die Datenbank eintragen. Das heisst also, in die Datenbank kommt dann am Ende z.B.
Rechner 1
- VM1
- VM2
Rechner 2
- VM5
- VM10, usw.
Die Datenbank muss nirgends rausgeschrieben werden. Ich brauche diese Infos wie gesagt nur intern, um mit ihnen später die JTextfields meiner GUI zu füllen. Reicht für diesen Zweck denn die oben genannte VMDatabase Klasse?
1 Antwort
- 🐟 Fish 🐟Lv 7vor 10 JahrenBeste Antwort
Und so wurde die Frage gestellt? Für Beginners etwas dürftig!
Was dir vollständig fehlt ist eine Datenbankzugriffsklasse. Diese liest die Daten in eine Liste oder eine Struktur ein und mir der kannst du dann satzweise deine Klasse VirtualMachine füllen.
Ich kann nur Vermuten ein Record = eine VirtualMachine klasse.
Für eine präzisere Antwort fehlen schlicht infos.
1. Welche Datenbank.
2. Wie greift der Treiber zu (JDBC/Native) und wenn Native wie sehen die Zugriffe aus.
3. Gibt es bereits eine Auslesefunktion für ein Tupel oder mußt du die Datenbank über der Cursor Satzweise lesen?
4. Wie sieht die Datenstruktur aus?
Das einzige was der Code oben macht ist eine Struktur von virtuellen Maschinen zu beschreiben.
...
Übrigens Die main stößt den Prozess höchstens an. Aber sie füllt nicht die Datenbank. Saubere Programmierung heißt möglichst viel in die Klasse legen.
EDIT:
Mit den Zusatzinfos hat das nichts mehr mit einer Datrnbank zu tun. Sowas nennt man eine Datenstruktur. Ob das reicht hängt von der Problemstellung ab. Es reicht auf jeden fall nicht um alle denkbaren Probleme zu beschreiben,
Beispiel
Die VM hat offene Kommunikationsports dann mu0 zusätzlich noch eine Klasse oder mit den Ports, ihrer Kommunikatiuonsrichtung und ggf der Bedeutung angehängt werden.
Für eine reine identifikation hingegen würde es schon ausreichen lediglich die IP in dieser Klasse mitzuführem. Programmieren ist kein selbstzweck. Du vergisst das Hauptproblem. Definiere eine Fragestellung PRÄZISE dann ergibt sich der Code fast von alleine. Das ist genau der Grund warum ich Anfängern Grundsätzlich rate nicht mit einer Programmiersprache sondern mit UML anzufangen. Lad dir ArgoUML http://www.heise.de/software/download/argouml/3741... Wenn du hier die Fragestellung richtig definiert hast dann wird dir der Code umsonst und frei Haus geliefert. Einfach auf Code generieren gehen.
- Was die eingebette Klasse angeht, Es ist nicht zwingend eine Klasse die eine Struktur aufbauen einzubetten, aber es ist guter Stil.
- Die IP hat in der VM nichts zu suchen die gehört NUR in die NetworkEntity. Denn du kannst Einzelne VM's mit völlig unterschiedlichen IP's betreiben.
- Active User muß eine Liste Sein, Denn Zeiten von Singeluser, Singelthreading sind selbst für HeimPC's vorbei und einen Server kannst du damit garnicht abbilden. Korrekterweise muß hier eine Sessionklasse her. Pro Sitzung (USER) ein liste element.
- In die VM gehört ausschliesslich die Identifikation der physikalischen Hardware.
- Die Prozessorauslaslung/RAMLast/WebLast sollte ebenfalls in die Sitzung und die VM verfügt lediglich über eine Methode in der die Lasten summiert werden. Und ggf über eine zweite Methode in der die physikalische Serverlast gegen die Summe der einzellasten gerechnet wird. Dann hast du die Last für den Betrieb der VMWARE.
- "Den Temppath" gibt es weder für die VM noch für die Session. Also macht dieser Eintrag hier keinen Sinn. (Es sei denn du willst für DEINEN Programmlauf Daten ablegen)
- Ich weiss nicht genau wofür die StressDuration steht, aber das ist eine Dauer, also ein Interval und solche Intervalle können wiederholt auftauchen Folglic reicht auch hier ein Wert nicht aus sondern es muß eine Liste her. Wenn du dann die letzte stressDuration haben willst bekommst du die einfach mit
stressDuration.Tail().