Was sind native Abfragen?
Native Abfragen sind Abfragen, die über SQL (Structured Query Language) ausgedrückt werden, kurze und typsichere Methoden für C ++ - und Java-Abfrageausdrücke. Die Verwendung von systemeigenen Abfragen ist bei der Verwendung bestimmter Funktionen in Datenbanken von Vorteil, einschließlich Abfragetipps und bestimmter datenbankspezifischer Funktionen. Sie sind auch nützlich, um saubere Migrationspfade direkt aus Anwendungen mithilfe von SQL oder Java Database Connectivity (JDBC ™) bereitzustellen. Native Abfragen werden verwendet, um Ergebnisse bereitzustellen, die aus skalaren Werten, Entitäten oder beidem bestehen. Diese Abfragetypen unterstützen die Verwendung von nativem SQL in einer Zieldatenbank.
Diese Art von Abfragen kann die Mängel einer auf Zeichenfolgen basierenden Anwendungsprogrammierschnittstelle (API) beheben. Abfragen dieser Art werden in einer Objektdatenbank verwendet, in der die Objektpersistenz eine häufige Aufgabe für Programmierer und ein gemeinsames Merkmal der Datenbank ist. Nicht native Abfragen erscheinen jedoch in objektorientierten Programmen als fremd, da ihre Ausdrücke einfache Zeichenfolgen und Objektdiagramme sind, die dazwischenliegende Zeichenfolgen enthalten.
Mit systemeigenen Abfragen können Sie die in Datenbanken auftretenden Probleme beheben, indem Sie eine Abfrage in Java und C ++ ausdrücken. Abfragen können ohne API oder angepasste Abfragesprache geschrieben werden. Darüber hinaus kann eine integrierte Entwicklungsumgebung (Integrated Development Environment, IDE) zur Reduzierung von Tippfehlern beitragen. Die systemeigenen Abfragen wären dann in vollem Umfang typsicher und könnten von den Refactoring-Funktionen einer IDE aufgerufen werden. Schließlich können die Abfragen ohne das Back-End einer Datenbank für einfache Speichersammlungen ausgeführt, getestet und prototypisiert werden.
Die Abfragen und das zugehörige SQL sind nicht unbedingt auf andere Datenbanken übertragbar. Bei der Rückgabe vieler Entitäten durch eine bestimmte systemeigene Abfrage sollten dieselben Entitäten angegeben und Spaltenergebnissen in SQL-Anweisungen in einem Metadatendefinitions-Zuordnungssoftwareprogramm zugeordnet werden. Infolgedessen können diese verwendet werden, um JDBC-Ergebnisse durch persistente Laufzeit in erwartete Objekte abzubilden. Die Verwendung von Namensparametern wird für diese Abfragetypen nie definiert, und tragbare Anwendungen können die Bindung von Positionsparametern nur für native SQL-Abfragen verwenden. Die Unterstützung von Joins ist auf Beziehungen einzelner Werte beschränkt.
Um native Abfragen zu verwenden, muss ein Programmierer eine SQL-Ergebnismenge beschreiben. Das Beschreiben der Ergebnismenge hilft einem Programm wie Entitymanager dabei, Spalten auf Eigenschaften von Entitäten abzubilden. Skalare Ergebnisse können auch definiert und mit anderen Entitätsergebnissen gemischt werden, wodurch eine Alias-Spalte zurückgegeben wird. Sobald die Ergebnismengen beschrieben sind, können native Abfragen ausgeführt werden.