Pregunta

Vamos a decir que tengo una getUser consulta con dos parámetros - usuario y contraseña. Me gustaría tener un método asignador con este aspecto:

public UserBean getUser(String userName, String password);

¿Hay alguna manera de lograr algo por el estilo? O quizás debería pasar en mi asignador mapa método de parámetros (y algunos parameterMap en mi asignador XML)?

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

Estoy deseando para algunos consejos y explicaciones.

¿Fue útil?

Solución

Sin ninguna configuración especial, que puede referirse a la primera y segunda parámetro como # {1} y # {2}, respectivamente.

Si desea nombrar a los parámetros, en lugar de referirse a ellos numéricamente, haga lo siguiente: En la asignación XML para su instrucción SELECT, establecer parameterType = "mapa", y en el archivo de interfaz, anotar los parámetros con @ Param. Por ejemplo, pública UserBean getUser (@Param ( "nombre_usuario" cadena usuario, @Param ( "contraseña") String password); permitiría hacer referencia al nombre de usuario y contraseña, en el mapeo XML, como # {#} y nombre_usuario # {password}, ??respectivamente.

Otros consejos

No debe modificar la firma de su método DAO, la única cuestión a considerar es la forma de construir su asignación. apoyo iBatis sólo un parámetro de entrada, y debe decidir su clase (atributo parameterType) para empacar sus dos parámetros originales en uno.

En este escenario es posible (entre otras opciones) colocar los dos parámetros en un Map (HashMap, por lo general), o (si los parámetros corresponden a propiedades de la clase UserBean) pasar una UserBean maniquí con esas dos propiedades establecidas.

En ambos casos el embalaje (la construcción de la HashMap o la UserBean ficticia que mantienen los dos parámetros) se llevaría a cabo dentro de su método public UserBean getUser(String userName, String password).

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top