Frage

Im Moment eine extrem einfache Website- ca. 5 Seiten, die ich mache. Die Frage ist, ob es übertrieben und die Zeit wert, eine Art von Datenbank-Mapping-Lösung zu integrieren oder ob es besser sei, zu einfach nur alten JNDI zu verwenden. Ich werde vielleicht ein Dutzend Dinge, die ich aus der Datenbank lesen / schreiben. Ich glaube, ich ein grundlegendes Verständnis dieser Technologien haben, aber es wäre noch viel Bezug auf die Dokumentation übernehmen. Noch jemand vor der Entscheidung, vor?

EDIT: Sorry, ich habe JNDI angegeben sollte die DB-Verbindung und JDBC-Lookup die Operationen auszuführen

.
War es hilfreich?

Lösung

Kurze Antwort: Es hängt von der Komplexität Sie unterstützen möchten

.

Lange Antwort:

Zu allererst ORM (Object Relational Mapping - Mapping-Datenbank wie Sie es nennen -) und JNDI (Java Naming and Directory Interface) sind zwei verschiedene Dinge.

Die erste wie Sie bereits wissen, wird verwendet, um die Datenbanktabellen zu Klassen und Objekte abzubilden. Die zweite ist eine Lookup-Mechanismus für die Ressourcen zur Verfügung zu stellen, können sie Datasources, Ejb, Warteschlangen oder andere sein.

Vielleicht ist Ihr mean "JDBC".

Nun, wie für Ihre Frage: Wenn es so einfach ist es nicht notwendig wäre, kann ein ORM zu implementieren. Die Anzahl Tabellen rund 5 wären - höchstens 10, und die Operationen wirklich einfach, denke ich.

Wahrscheinlich Ebene JDBC verwenden würde ausreichen, um.

Wenn Sie die DAO-Muster verwenden, können Sie es später ändern, um die ORM-Strategie zu unterstützen, wenn nötig.

Wie folgt aus: Sagen Sie bitte die Employee-Tabelle haben

Sie erstellen die Employee.java mit allen Feldern der DB mit der Hand (es soll nicht zu lange dauern) und einen EmployeeDaO.java mit Methoden wie:

+findById( id ): Employee
+insert( Employee ) 
+update( Employee )
+delete( Employee ) 
+findAll():List<Employee>

Und die Umsetzung ist ganz einfach:

select * from employee where id = ?
insert into employee ( bla, bla, bla ) values ( ? , ? , ? )
update etc. etc 

Wenn (und) Wenn Ihre Anwendung zu komplex wird möglicherweise die DAO Implementierung ändern. Zum Beispiel in der Methode „wählen“ können Sie den Code ändern, um das ORM-Objekt zu verwenden, den die Operation durchführt.

public Employee selectById( int id ) {
      // Commenting out the previous implementation...
      // String query = select * from employee where id = ? 
      // execute( query )  

      // Using the ORM solution

       Session session = getSession();
       Employee e = ( Employee ) session.get( Employee.clas, id );
       return e;
}

Dies ist nur ein Beispiel, im wirklichen Leben können damit Sie die abstact Fabrik der ORM DAO erstellen, aber das ist offtopic. Der Punkt ist, dass Sie einfach beginnen und durch die desing Muster verwenden, können Sie die Implementierung später ändern, wenn nötig.

Natürlich, wenn Sie die Technik erlernen möchten Sie rigth weg mit noch 1 Tisch beginnen kann.

Die Wahl der einen oder andere (ORM-Lösung, die ist) hängt im wesentlichen von der Technologie Sie verwenden. Zum Beispiel für JBoss oder andere Open-Source-Produkte Hibernate ist groß. Es ist Open Source, es gibt eine Menge von Ressourcen, wo zu lernen. Aber wenn Sie etwas verwenden, das bereits Toplink hat (wie die Oracle Application Server) oder wenn die Basis bereits auf Toplink gebaut ist, sollten Sie mit diesem Rahmen bleiben.

Durch die Art und Weise, da Oracle BEA gekauft, sagten sie, sie Kodo (WebLogic peresistence Rahmen) sind ersetzt mit toplink in dem jetzt als "Oracle Weblogic Application Server".

Ich lasse Sie einige Ressourcen, wo Sie weitere Informationen über diese bekommen:


In dieser „Patterns of Enterprise Application Architecture“ Buch, Martin Fowler, erklärt, wo das eine oder andere verwenden, hier der Katalog ist. Schauen Sie sich auf Datenquelle Architectural Patterns vs. Object-Relational Verhaltensmuster:

PEAA Katalog


DAO (Data Access Object) Teil des Kern J2EE Muster Katalog ist:

Das DAO Muster


Dies ist ein Starter-Tutorial für Hibernate:

Hibernate


Die offizielle Seite von Toplink:

Toplink


Schließlich ich „denken“, die gute Meinung von JPA ist, dass Sie Anbieter in letzter Zeit geändert.

Starten Sie einfach und dann weiterentwickeln.

Ich hoffe, das hilft.

Andere Tipps

Es scheint, wie es für eine sehr einfache Anwendung zu viel des Guten wäre, vor allem, wenn Sie jemals auf sie nicht vorhaben zu erweitern. Aber es scheint auch, wie es sich lohnen könnte diejenigen mit dieser einfachen Anwendung zu verwenden, so dass Sie ein besseres Verständnis davon, wie sie für die nächste Zeit arbeiten Sie etwas, das sie nutzen könnten.

Sie meinen plain old JDBC? Ein kleines Projekt könnte eine gute Gelegenheit sein, eine des ORM-Frameworks zu holen, vor allem, wenn Sie Zeit haben.

Ohne weitere Informationen ist es schwer, eine Empfehlung der einen oder anderen jedoch zu liefern.

Meine Faustregel, wenn es schreibgeschützt ist, ich bin bereit, es in JDBC zu tun, obwohl ich lieber ein leeres Hibernate-Projekt mit SQLQuery nutzen den Vorteil von Hibernate Typzuordnung zu nehmen. Sobald ich zu tun habe, schreibt, gehe ich mit Hibernate, weil es so viel einfacher ist, ein paar Attribute zu setzen und speichern Sie dann ruft als jede Spalte individuell einzustellen. Und wenn Sie die Optimierung starten müssen Updates auf unverändert Objekte zu vermeiden, sind Sie viel besser aus mit einem OR / M und seiner schmutzigen Prüfung. Der Umgang mit Fremdschlüsselbeziehungen ist ein weiteres Zeichen dafür, dass Sie sie brauchen einmal zu erfassen und dann die Getter verwenden. Die gleiche Logik zu Toplink gelten würde, obwohl, wenn sie so etwas wie HQL in den 3 Jahren hinzugefügt habe, seit ich es benutzen, Hibernate viel besser aus reinem SQL für diese Art von Übergang wäre. Beachten Sie, dass Sie nicht jedes Objekt / Tabelle, nur die, die Karte haben, wo es ein klarer Vorteil ist. Nach meiner Erfahrung sind die meisten Projekte, die verwenden eine nicht vorhandene OR / M baut ein neues Ende, das eine schlechte Idee ist.

Der am besten Weg ORM zu lernen, ist ein kleines Projekt. Starten Sie an diesem Projekt.

Sobald Sie den Dreh raus zu bekommen, werden Sie ORM für alles verwenden.

Es gibt nichts zu klein für ORM. Nach Ihrer ersten paar Projekte finden Sie, dass Sie eine andere Art und Weise nicht funktionieren kann. Der ORM-Mapping macht in der Regel mehr Sinn als fast jede andere Art zu arbeiten.

Schauen Sie sich die verschiedenen toplink Führer hier, sie haben Intro, Beispiele, Szenarien usw.

http://docs.oracle.com/cd/ E14571_01 / web.1111 / b32441 / Toc.htm

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top