Diese Regel wird von pureQuery nur befolgt, wenn der Eingabeparameter für eine Methode eine Bean oder ein Map ist. Da dem Teil Name der Parametermarken entweder : oder ? vorangestellt wird, werden sie von pureQuery als Java™-Kennungen, bei denen Groß-/Kleinschreibung beachtet werden muss, aufgefasst, wenn die entsprechenden Eigenschaftswerte in der Bean oder im Map gesucht werden.
Die Java-Regeln für die Gleichheit von Kennungen werden von pureQuery nicht geändert, wenn eine Kennung nur von Java verwendet wird. Die SQL-Regeln für die Gleichheit von Kennungen werden von pureQuery nicht geändert, wenn eine Kennung nur von SQL verwendet wird.
Beispiel 1
In diesem Beispiel erhält eine mit Annotationen versehene Methode eine Bean mit dem Namen Act als Eingabeparameter und übernimmt die Ausführung einer Anweisung SELECT für eine Datenbank. Die Ergebnisse der Anweisung SELECT werden mit dem Wert einer der Eigenschaften der Bean gefiltert.
@Select(sql="select ACTNO, ACTKWD, ACTDESC from ACT where ACTNO = :actNo") Act getAct(Act a);
Beim Ausführen der Anweisung SELECT wird von pureQuery zuerst die Bean nach der Methode getActNo() durchsucht. Wird keine solche Methode gefunden, wird von pureQuery eine Eigenschaft mit dem Namen "actNo" gesucht. Wird keine solche Eigenschaft gefunden, wird String "actNo" von pureQuery in der Methode get(String) der Bean übergeben, falls durch die Bean eine solche Methode definiert ist.
Bei der Rückgabe der Act-Objekte, die den übereinstimmenden Datensätzen entsprechen, werden die SQL-Spaltenkennungen von pureQuery in Kleinbuchstaben umgewandelt. Anschließend wird die Bean von pureQuery erstellt.
Beispiel 2
Angenommen, die Methode erhält ein Map als Eingabeparameter und gibt eine Liste von Map-Objekten zurück.
@Select(sql="select ACTNO, ACTKWD, ACTDESC from ACT where ACTNO = :actNo") List<Map<String, Object>> getAct(Map<String, Object> a);
Bei der Ausführung der Anweisung SELECT wird String "actNo" von pureQuery an die Methode get(String) von Map übergeben. Bei der Rückgabe der Map-Objekte, die den übereinstimmenden Datensätzen entsprechen, werden die SQL-Spaltenkennungen von pureQuery in Kleinbuchstaben umgewandelt, bevor Sie an die Methode put() der einzelnen Map-Objekte übergeben werden.
Beispiel 3
Im nächsten Beispiel erhält eine weitere mit Annotationen versehene Methode eine Bean Act als Eingabeparameter und übernimmt die Ausführung einer Anweisung UPDATE für eine Datenbank. Die Werte in der Anweisung stammen aus Eigenschaften der Bean. Die Methode gibt einen Aktualisierungszähler zurück.
@Update(sql="update ACT set ACTKWD = :actKwd, ACTDESC = :actDesc where ACTNO = :actNo") int updateAct(Act a);
Beim Ausführen der Anweisung UPDATE werden von pureQuery Übereinstimmungen der Parameter in der Anweisung UPDATE mit Namen der get()-Methoden in der Bean, den Namen von Eigenschaften in der Bean und dann get(String) gesucht. Beispiel: Für den Parameter mit dem Namen actKwd wird die Bean von pureQuery zuerst nach einer Methode getActKwd() durchsucht. Wird keine solche Methode gefunden, wird von pureQuery eine Eigenschaft mit dem Namen "actKwd" gesucht. Wird keine solche Eigenschaft gefunden, wird String "actKwd" von pureQuery in der Methode get(String) der Bean übergeben, falls durch die Bean eine solche Methode definiert ist.