Frage

Bei meinem aktuellen Gig verwenden wir iBATIS durch Java unsere Datenbanken CRUD. Ich mag die abstrakten Qualitäten des Werkzeugs, vor allem, wenn sie mit Legacy-Datenbanken arbeiten, da es nicht auf Ihnen ihre eigene Syntax erlegt.

Ich suche nach einem Python analog zu dieser Bibliothek , da nur die Website verfügt über Java / .NET / Ruby-Versionen zur Verfügung. Ich will nicht zu Jython wechseln, wenn ich nicht brauchen.

Gibt es noch andere Projekte ähnlich wie iBATIS Funktionalität gibt für Python?

War es hilfreich?

Lösung

iBatis sondert den SQL-DML (oder die Definitionen der SQL) in einer XML-Datei. Es konzentriert sich speziell auf die Zuordnung zwischen dem SQL und einige Objektmodell an anderer Stelle definiert sind.

SQL Alchemy kann dies tun - aber es ist nicht wirklich eine sehr komplette Lösung. Wie iBatis, können Sie nur SQL Tabellendefinitionen haben und eine Zuordnung zwischen den Tabellen und Python Klassendefinitionen.

Was ist vollständiger ist eine Klassendefinition zu haben, das ist auch die SQL-Datenbank-Definition. Wenn die Klassendefinition, die SQL-Tabelle DDL sowie die Abfrage und Verarbeitung DML erzeugt, das ist viel vollständiger.

I-Flip-Flop zwischen SQLAlchemy und der Django ORM. SQLAlchemy kann in einer iBatis gleicher Weise verwendet werden. Aber ich ziehe das Objekt entwirft zentral zu machen und lassen Sie die SQL-Implementierung von den Objekten durch das Toolset abgeleitet werden.

Ich verwende SQLAlchemy für große, Charge, Stand-alone-Projekte. Lädt DB, Schema Konvertierungen, DW Berichterstattung und dergleichen Arbeit gut. In diesen Projekten liegt der Schwerpunkt auf der relationalen Ansicht der Daten, nicht das Objektmodell. Die SQL, die generiert werden kann in PL / SQL Stored Procedures bewegt werden, zum Beispiel.

Ich verwende Django für Web-Anwendungen, die eingebauten in ORM-Funktionen zu nutzen. Sie können mit einer wenig Arbeit, die Django ORM aus dem Rest der Django-Umgebung absondern. Sie können Ihre Anwendung auf eine bestimmte Datenbank zu binden, ohne eine separate Einstellungen Modul.

Django enthält eine Reihe von gemeinsamen Beziehungen (Foreign Key, Many-to-Many, One-to-One), für die es die SQL-Implementierung verwalten. Es erzeugt Schlüssel und Indexdefinitionen für die angeschlossene Datenbank.

Wenn Ihr Problem weitgehend objektorientiert, mit der Datenbank für die Persistenz verwendet wird, dann ist die fast transparente ORM Schicht von Django hat Vorteile.

Wenn Ihr Problem ist weitgehend relationales, mit der SQL-Verarbeitung zentralen, dann ist die Möglichkeit, die generierten SQL sehen in SQLAlchemy Vorteile hat.

Andere Tipps

Vielleicht SQLAlchemy SQL Expression Unterstützung geeignet. Finden Sie in der Dokumentation rel="nofollow.

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