Frage

Lassen Sie uns sagen, ich habe eine Abfrage getUser mit zwei Parametern - Benutzername und Passwort. Ich möchte eine Mapper-Methode haben, wie folgt aussehen:

public UserBean getUser(String userName, String password);

Gibt es eine Möglichkeit ich so etwas erreichen kann? Oder vielleicht soll ich in meiner Mapper Methode Karte Parameter übergeben (und einige parameterMap in meinem XML-Mapper)?

public UserBean getUser(Map<String, Object> paramMap);

Ich freue mich für einige Tipps und Erklärungen.

War es hilfreich?

Lösung

Ohne spezielle Konfiguration, Sie auf den ersten und zweiten Parameter als # beziehen {1} und {2} #, respectively.

Wenn Sie die Parameter nennen mögen, anstatt numerisch sie Bezug genommen wird, wie folgt vorgehen: In dem XML-Mapping für Ihre SELECT-Anweisung gesetzt Parametertype = „Karte“, und in der Schnittstellendatei, mit Anmerkungen versehen, die Parameter mit @ param. Zum Beispiel, öffentliche UserBean getUser (@param ( "user_name" String username, @param ( "Passwort") String password); Ihnen erlauben würde, auf den Benutzernamen und das Kennwort ein, in der XML-Mapping zu beziehen, wie # {user_name #} und # {Kennwort} ist.

Andere Tipps

Sie sollten nicht die Signatur Ihrer DAO-Methode ändern, das einzige Problem ist zu überlegen, wie Sie Ihr Mapping bauen. iBatis Unterstützung nur einen Eingabeparameter, und Sie müssen Ihre Klasse (Attribut parameterType) entscheiden, Ihre beiden ursprünglichen Parameter in einem packen.

In diesem Szenario Sie könnte (neben anderen Optionen) legt die beiden Parameter in einem Map (HashMap, in der Regel), oder (wenn die Parameter Eigenschaften der UserBean Klasse entsprechen) ein Dummy UserBean mit diesen beiden Eigenschaften festgelegt übergeben.

In beiden Fällen ist die Verpackung (Aufbau der HashMap oder den Dummy UserBean, die die beiden Parameter halten) würde in Ihrem public UserBean getUser(String userName, String password) Verfahren durchgeführt werden.

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