Domanda

dire Let Ho un getUser query con due parametri - username e password. Mi piacerebbe avere un metodo mapper cercando in questo modo:

public UserBean getUser(String userName, String password);

C'è un modo posso realizzare una cosa del genere? O forse dovrei passare il mio metodo mapper mappa di parametri (e un po 'nel mio parameterMap XML mapper)?

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

Non vedo l'ora per alcuni suggerimenti e spiegazioni.

È stato utile?

Soluzione

senza alcuna configurazione speciale, si può fare riferimento al primo e al secondo parametro come # {1} e # {2}, rispettivamente.

Se volete dare un nome i parametri, piuttosto che riferendosi a loro numericamente, effettuare le seguenti operazioni: Nella mappatura XML per la vostra istruzione SELECT, impostare tipoParametro = "mappa", e nel file di interfaccia, annotare i parametri con @ Param. Ad esempio, pubblica UserBean getUser (@ param ( "nome_utente" String username, @param ( "password") la password String); permetterebbe di fare riferimento al nome utente e password, nella mappatura XML, come # {user_name} e # # {Password}, ??rispettivamente.

Altri suggerimenti

Non dovrebbe cambiare la firma del metodo DAO, l'unico problema da considerare è come costruire la vostra mappatura. Supporto iBatis solo un parametro di input, e si deve decidere la classe (attributi parameterType) di preparare le due parametri originali in uno.

In questo scenario si potrebbe (tra le altre opzioni) posizionare i due parametri in un Map (HashMap, in genere), o (se i parametri corrispondono alle proprietà della classe UserBean) passare un UserBean manichino con quei due proprietà impostate.

In entrambi i casi l'imballaggio (la costruzione del HashMap o UserBean manichino che detengono i due parametri) sarebbe stato fatto all'interno del vostro metodo di public UserBean getUser(String userName, String password).

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top