2016-11-18 1 views
1

Ich habe ein Fenster, um Benutzer einen Termin mit einigen Feldern (date, start time, end time, ...) zu buchen und speichern Sie es in einer Datenbank. Warum muß ich diese Felder in einem Objekt speichern, wieJava, Datenbank - Warum habe ich ein neues Objekt zugewiesen, wenn wir es direkt in die Datenbank setzen können

Appointment a = new Appointment(date,start,end,...); 

und dann get Methoden mit diesem Satz von Daten zurück zu erhalten, anstatt sie direkt in eine Datenbank zu speichern?

Jemand sagt mir, wie objektorientierte Programmierung funktioniert, aber die Aufgabe ist nur das Einfügen eines neuen Datensatzes in eine Datenbank, keine Änderung erforderlich.

+0

Bitte zeigen Sie mehr vom relevanten Code. Hat die Datenbank-API die Fähigkeit, ein "Termin" -Objekt zu akzeptieren? Aktiviert das Objekt "Appointment" einen der Werte, die Sie ihm geben? – 4castle

Antwort

2

Ja, wir können sie direkt setzen, aber es ist unbequem.

Wir arbeiten im OOP-Stil und versuchen nicht mit Rohdaten zu interagieren. Nach dem Empfang einiger Daten konstruieren wir normalerweise eine Instanz einer Klasse und arbeiten dann nur mit diesem Objekt und seinem Zustand.

Es ist praktisch, weil eine Instanz alle erforderlichen Informationen über ein Objekt enthält, das es darstellt. Wir können es problemlos in verschiedene Methoden überführen, indem wir nur ein Argument verwenden (wir müssen nicht über eine Anzahl von Feldern nachdenken, die wir speichern wollen).

Während der Verarbeitung kann eine Instanz einige Meilensteine ​​durchlaufen (z. B. Filterung, Validierung), bevor sie für die weitere Verarbeitung bereit ist. Daher ist es wichtig, dass solche Infrastrukturmethoden ein vollständiges, bereits gebildetes Objekt übernehmen und nur seinen Zustand auffrischen.

Und schließlich macht OOP Ihren Code lesbarer und selbsterklärend.

0

Sie müssen dies nicht unbedingt tun. Sie können zum Beispiel die Basis EntityManager verwenden, um Werte direkt in eine beliebige Datenbank unter Verwendung einer executeQuery-Methode einzufügen. Die Erstellung von Objekten dient hauptsächlich der objektorientierten Programmierung und ich (und andere OO-Süchtige wie ich) bevorzugen es, zuerst Objekte zu speichern. Ein Grund dafür ist die Tatsache, dass es viel verständlicher ist, welche Daten tatsächlich zurückgegeben werden, wenn Sie Informationen aus der Datenbank abrufen möchten. Eine zweite ist eine bessere Übersicht über den gesamten Code. Macht es lesbarer und so weiter.

Beispiel des EntityManager:

EntityManager em; 
//Initialize em by setting up the database source, there's a lot of information on google =) 
em.createQuery(
    "SELECT c FROM Customer c WHERE c.name LIKE :custName") 
    .setParameter("custName", name) 
    .setMaxResults(10) 
    .getResultList(); 
Verwandte Themen