Question

Le mot Let J'ai un getUser de requête avec deux paramètres - userName et mot de passe. Je voudrais avoir une méthode mappeur qui ressemble à ceci:

public UserBean getUser(String userName, String password);

Est-il possible que je peux réaliser quelque chose comme ça? Ou peut-être que je devrais passer dans ma méthode mappeur carte des paramètres (et certains parameterMap dans mon xml mappeur)?

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

Je suis impatient de quelques conseils et explications.

Était-ce utile?

La solution

Sans aucune configuration particulière, vous pouvez vous référer à la première et deuxième paramètre comme # {1} et {2} #, respectivement.

Si vous souhaitez nommer les paramètres, plutôt que de se référer à eux numériquement, procédez comme suit: Dans le mapping XML pour votre instruction SELECT, définissez parameterType = « carte », et dans le fichier d'interface, annoter les paramètres avec @ param. Par exemple, du public UserBean getUser (@param ( "user_name" String userName, @param ( "mot de passe") mot de passe String), vous permettra de vous reporter au nom d'utilisateur et mot de passe, dans le mapping XML, comme # {user_name #} et # {} mot de passe, respectivement.

Autres conseils

Vous ne devriez pas changer la signature de votre méthode DAO, la seule question à considérer est la façon dont vous construisez votre cartographie. soutien iBatis juste un paramètre d'entrée, et vous devez décider de votre classe (parameterType attribut) pour emballer vos deux paramètres originaux en un.

Dans ce scénario, vous pouvez (entre autres options) placer les deux paramètres dans un Map (HashMap, généralement), ou (si les paramètres correspondent aux propriétés de la classe UserBean) passer un UserBean factice avec ces deux propriétés définies.

Dans les deux cas, l'emballage (la construction du HashMap ou UserBean factice qui détiennent les deux paramètres) sera fait à l'intérieur de votre méthode public UserBean getUser(String userName, String password).

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top