Mit Annotationen versehene Methoden bieten folgende Vorteile:
Sie können eine angepasste Schnittstelle erstellen, die dem DAO-Muster folgt, indem Sie eine Schnittstelle schreiben, die Datenzugriffsobjekte erstellt. Wenn Sie die Schnittstelle fertig geschrieben haben, können Sie das pureQuery-Dienstprogramm Generator ausführen, um die Definition einer Klasse zu generieren, die die Schnittstelle implementiert. Beim Schreiben von Code für Ihre Anwendung können Sie Instanzen dieser Implementierungsklasse erstellen und anschließend die Methoden aufrufen, die in dieser Instanz implementiert sind. Sie können Java-Objekte, -Beans und -Objektgruppen verwenden, um Parameter für Ihre Methoden bereitzustellen und die Ergebnisse der Abfragen zu erhalten.
Folgende Methode verwendet z. B. eine Annotation @Select und könnte in einer Schnittstelle mit dem Namen CustomerQuery auftreten, in der Sie Methoden zum Abfragen und Aktualisieren von Datensätzen in einer Tabelle mit dem Namen CUSTOMER definieren.
@Select(sql="SELECT CUSTID, NAME FROM CUSTOMER WHERE REGION = ?1") List<Customer> getCustomersInRegion(int r);
Nachdem Sie die Schnittstelle kompiliert und mithilfe des pureQuery-Dienstprogramms Generator eine Klasse mit dem Namen CustomerQueryImpl erstellt haben, die die Schnittstelle implementiert, kann eine Anwendung die Methode aufrufen und die Abfrageergebnisse aus der zurückgegebenen Liste abrufen.
Connection con = DriverManager.getConnection(...); CustomerQuery cQuery = DataFactory.getData(CustomerQuery.class, con); int region = 123; List<Customer> customersInRegion = cQuery.getCustomersInRegion(region);
Der Code führt die folgenden Schritte aus:
Beachten Sie, dass sich der Code direkt auf die Schnittstelle CustomerQuery und nicht auf die Implementierungsklasse bezieht. Sie können Ihre Anwendungen ohne Abhängigkeit von der generierten Implementierungsklasse kompilieren.
Sie können die SQL-Anweisungen in den Annotationen zu den in einer Schnittstelle definierten Methoden mithilfe einer XML-Datei überschreiben. Sie stellen die SQL-Anweisungen in der XML-Datei bereit und übergeben diese Datei dem pureQuery-Dienstprogramm Generator, wenn Sie die Implementierungsklasse für die Schnittstelle generieren. So können Sie Schnittstellen in mehreren Anwendungen verwenden, wenn diese Anwendungen unterschiedlichen Datenbanken zugeordnet sind.
Sie könnten z. B. eine Anwendung haben, die mit einer DB2-Datenbank arbeitet, und eine ähnliche Anwendung, die mit einer Oracle-Datenbank arbeitet. Eine Schnittstelle mit dem Namen Customer könnte SQL-Anweisungen enthalten, die zu der DB2-Datenbank kompatibel sind. Zur Wiederverwendung der Schnittstelle für die zweite Anwendung würden Sie dem pureQuery-Dienstprogramm Generator beim Generieren der Implementierungsklasse für die Schnittstelle Customer eine XML-Datei mit SQL-Anweisungen übergeben, die zu der Oracle-Datenbank kompatibel sind.