XML-Konfigurationsdateien mit pureQuery-Dienstprogramm Generator verwenden

Wenn Sie eine Implementierungsklasse für eine Schnittstelle generieren, die mit Annotationen versehene Methoden definiert, können Sie mit einer XML-Datei die SQL-Anweisungen angeben oder überschreiben, die diese Methoden verwenden. Sie können dieselbe XML-Datei auch verwenden, um zu überschreiben, wie die Spalten in einem Datenbankobjekt wie eine Tabelle oder Sicht den Eigenschaften einer Bean zugeordnet werden.

Wenn das Dienstprogramm Generator von pureQuery eine Implementierung für eine mit Annotationen versehene Methode in der Schnittstelle erstellt, überprüft es die XML-Konfigurationsdatei auf eine SQL-Anweisung hin, die verwendet werden soll, wenn die Methode mit einer leeren Annotation definiert ist, oder auf einen Wert hin, mit dem die SQL-Anweisung überschrieben werden soll, die in der Annotation der Methode verwendet wird. Das Dienstprogramm Generator von pureQuery überprüft die XML-Konfigurationsdatei auch auf Beans, auf die die Datei verweist.

Um eine XML-Konfigurationsdatei anzugeben, verwenden Sie beim Aufrufen von Generator von pureQuery die Option xmlFile.

Beispiele für die Verwendung von XML-Konfigurationsdateien zum Angeben oder Überschreiben von SQL-Anweisungen in Schnittstellen, die mit Annotationen versehene Methoden definieren

Die folgenden Beispiele zeigen Situationen, in denen die Verwendung von XML-Konfigurationsdateien sinnvoll sein kann.

In Situationen wie folgenden kann es sinnvoll sein, die SQL-Anweisungen in einer Schnittstelle zu überschreiben:
  • Sie wollen die Schnittstelle in zwei verschiedenen Anwendungen verwenden, die mit zwei verschiedenen Datenbanken ausgeführt werden. Statt die SQL-Anweisungen in die Schnittstelle aufzunehmen, erstellen Sie eine XML-Konfigurationsdatei für jede Anwendung und geben die SQL-Anweisungen für jede Anwendung in den einzelnen XML-Dateien an.

    Sie können z. B. eine mit Annotationen versehene Methode in der Schnittstelle wie folgt definieren:

    @Select
    Iterator<Customer> getCustomersInRegion(int r);

    In der XML-Konfigurationsdatei für eine Anwendung definieren Sie die SQL-Anweisung, die Sie für diese Methode verwenden wollen:

    <named-native-query name="myPackage.CustomerInterface#getCustomersInRegion(int)"> 
      <query>
        <![CDATA[SELECT CUSTID, NAME FROM Customer WHERE STOREREGION=?1]]>
      </query> 
    </named-native-query>

    In der XML-Konfigurationsdatei für die andere Anwendung machen Sie dasselbe:

    <named-native-query name="myPackage.CustomerInterface#getCustomersInRegion(int)"> 
      <query>
        <![CDATA[SELECT ID, NAME FROM CUST WHERE REGION=?1]]>
      </query> 
    </named-native-query>
  • Sie haben SQL-Anweisungen in der Schnittstelle hinzugefügt und diese Schnittstellen unterstützen eine Anwendung. Sie wollen jetzt die Schnittstelle in einer zweiten Anwendung verwenden, die eine andere Datenbank verarbeitet. Wenn Sie die Implementierungsklasse für die zweite Anwendung generieren, können Sie eine XML-Datei zum Überschreiben der SQL-Anweisungen in der Schnittstelle verwenden.

    Die Schnittstelle könnte z. B. diese Definition für eine mit Annotationen versehene Methode enthalten, die von der ersten Anwendung verwendet wird:

    @Select(sql="SELECT CUSTID, NAME FROM Customer WHERE STOREREGION=?1")
    Iterator<Customer> getCustomersInRegion(int r);

    In der XML-Konfigurationsdatei für die andere Anwendung können Sie die SQL-Anweisungen wie folgt überschreiben:

    <named-native-query name="myPackage.CustomerInterface#getCustomersInRegion(int)"> 
      <query>
        <![CDATA[SELECT ID, NAME FROM CUST WHERE REGION=?1]]>
      </query> 
    </named-native-query>

Feedback