it-swarm.com.de

Leichte Alternative zum Ruhezustand?

Ich habe ein Java Einzelbenutzerprogramm, mit dem ich Daten in einer leichten Datenbank wie Derby oder Sqlite speichern möchte. Ich möchte eine Datenabstraktionsschicht in meinem Programm verwenden. Der Ruhezustand scheint viel Konfiguration zu erfordern und ist übertrieben für das, was ich brauche. Was sind leichte Alternativen zu Hibernate?

111
Jared

Für den Ruhezustand ist eine Konfiguration nahe Null erforderlich, wenn Sie Anmerkungen verwenden. Es kann sogar automatisch zugeordnete Beans im Klassenpfad erkennen! Ich sehe keine Alternative dazu aus der Sicht der Einfachheit nd Macht.

Es kann sich auch als JPA ausstellen, was (meiner Meinung nach) noch einfacher ist.

142

Meine ORMLite Bibliothek ist eine solche Alternative. Es unterstützt MySQL, Postgres, Microsoft SQL Server, H2, Derby, HSQLDB und SQLite und kann problemlos auf andere erweitert werden. Es verwendet Annotationen zum Konfigurieren von Klassen, zur Unterstützung von Spring, zum Erstellen flexibler Abfragen usw.

54
Gray

Es erfordert immer noch eine XML-Konfiguration, aber schauen Sie sich MyBatis (ehemals iBatis) an.

31
kgiannakakis

jOOQ wird mit einem fließenden DSL ausgeliefert, das SQL direkt in Java als Nebeneffekt für seine Hauptziele simuliert:

  • Quellcode-Generierung
  • Volle Unterstützung für Standard-SQL, einschließlich SQL-Sprachfunktionen wie UNIONs, verschachtelte SELECTs, alle Arten von JOINs, Aliasing (z. B. für Self-Joins) usw
  • Breite Unterstützung für nicht standardmäßiges SQL, einschließlich UDTs, gespeicherter Prozeduren, herstellerspezifischer Funktionen usw.

Lesen Sie mehr über jOOQ in diesem Artikel: http://Java.dzone.com/announcements/simple-and-intuitive-approach oder besuchen Sie die Website direkt: http: // www. jooq.org

(Haftungsausschluss, ich arbeite für die Firma hinter jOOQ)

22
Lukas Eder

Apache Commons DBUtils nimmt einen Großteil der sich wiederholenden Arbeit aus der JDBC-Programmierung heraus. Es erfordert wenig Konfiguration und ist leicht zu erlernen. Es ist kein ORM-Framework (wie es Hibernate und andere hier erwähnte Frameworks sind), aber es automatisiert die Zuordnung von SELECT-Spalten zu Java Member-Feldern sowie zu anderen sich wiederholenden JDBC-Programmieraufgaben sicherlich leicht.

14

Sie können einen Blick auf Ebean ORM werfen. - Keine Sitzungen - verzögertes Laden funktioniert einfach - Einfachere API zum Verwenden und Lernen.

12
Rob

Cayenne hat mir gut gedient. Relativ einfach zu verstehen und in Betrieb zu nehmen. Das Reverse Engineering finde ich besonders reizvoll. Die Konfiguration kann über eine grafische Benutzeroberfläche erfolgen.

9
Benno Richters

Ich kann Apache empire-db vorschlagen. http://incubator.Apache.org/empire-db/

Apache Empire-db ist eine Open Source-Komponente für relationale Datenpersistenz, die eine herstellerunabhängige dynamische Abfragedefinition sowie ein sicheres und einfaches Abrufen und Aktualisieren von Daten ermöglicht. Im Vergleich zu den meisten anderen Lösungen, wie z.B. In den Implementierungen von Hibernate, TopLink, iBATIS oder JPA verfolgt Empire-db einen ganz anderen Ansatz, mit besonderem Augenmerk auf Sicherheit beim Kompilieren, reduziert Redundanzen und verbesserte Entwicklerproduktivität.

Ein Beispiel:

// Define the query
DBCommand cmd = db.createCommand();
DBColumnExpr EMPLOYEE_FULLNAME= db.EMPLOYEES.LASTNAME.append(", ")
                        .append(db.EMPLOYEES.FIRSTNAME).as("FULL_NAME");
// Select required columns
cmd.select(db.EMPLOYEES.EMPLOYEE_ID, EMPLOYEE_FULLNAME);
cmd.select(db.EMPLOYEES.GENDER, db.EMPLOYEES.PHONE_NUMBER);
cmd.select(db.DEPARTMENTS.NAME.as("DEPARTMENT"));
cmd.select(db.DEPARTMENTS.BUSINESS_UNIT);
// Set Joins
cmd.join(db.EMPLOYEES.DEPARTMENT_ID, db.DEPARTMENTS.DEPARTMENT_ID);
// Set contraints and order
cmd.where(EMP.LASTNAME.length().isGreaterThan(0));
cmd.orderBy(EMP.LASTNAME);;
6
Somatik
2
AhmetB - Google

Ich bin vielleicht etwas spät dran an der Party, aber ich habe ActiveJDBC veröffentlicht. Dies ist eine ORM-Implementierung des ActiveRecord-Musters und ist in Abhängigkeiten mehr als zehnmal leichter als Hibernate, mindestens doppelt so schnell wie bei Laufzeit und erfordert keine Konfiguration oder Anmerkungen.

2
ipolevoy

Vielleicht möchten Sie einen Blick auf prevayler werfen (auf sourceforge). Ein etwas leichterer Ansatz zur Beharrlichkeit. Oder haben Sie darüber nachgedacht, gegen die DB zu berichten?

1

Wenn die Verwendung einer relationalen Datenbank nicht obligatorisch ist, versuchen Sie es mit db4o.

1
Behrang

Ich habe Sormula als Alternative zu schwergewichtigen ORMs erstellt. Es ist CRUD-fähig, POJO-freundlich, einfach zu bedienen, zu konfigurieren und zu verstehen. Die Verwendung ohne Konfiguration ist möglich. www.sormula.org

1
Jeff Miller