[Procesamiento de múltiples parámetros de Mybatis] mybatis pasa múltiples parámetros (sin usar la anotación @param y usando la anotación @param)

Método 1: transmisión de parámetros secuenciales

1. Pasando múltiples parámetros sin anotación @param
Nota: Lo que obtienes con jdk1.7 es: [1, 0, param1, param2] Lo
que obtienes con 1.8 es: [arg1, arg0, param1, param2]

Los números en # {} representan el orden de sus parámetros entrantes.
Este método no se recomienda, la expresión de la capa SQL no es intuitiva y una vez que se ajusta la secuencia, es fácil cometer errores.
Dar una castaña:
capa de Dao

List<User> demo(int userid, String name);
  •  

Escritura XML correspondiente
jdk1.7

<select id="demo" resultMap="User">
		select *
			from user where user_id=#{0} and name= #{1}
	</select>

Después de jdk1.8 La
primera forma de escribir

<select id="demo" resultMap="User">
		select *
			from user where user_id=#{arg0} and name= #{arg1}
	</select>

La segunda forma de escribir.

<select id="demo" resultMap="User">
		select *
			from user where user_id=#{param0} and name= #{param1}
	</select>

Método 2: método de parámetro @Param 注解 传

public User selectUser(@Param("userName") String name, int @Param("deptId") deptId);

<select id="selectUser" resultMap="UserResultMap">
    select * from user
    where user_name = #{userName} and dept_id = #{deptId}
</select>

El nombre en # {} corresponde al nombre modificado en la anotación @Param corchete.

Este método es relativamente intuitivo cuando no hay muchos parámetros, y se recomienda.

Método 3: método de pase de mapa

public User selectUser(Map<String, Object> params);

<select id="selectUser" parameterType="java.util.Map" resultMap="UserResultMap">
    select * from user
    where user_name = #{userName} and dept_id = #{deptId}
</select>

El nombre en # {} corresponde al nombre clave en el Mapa.

Este método es adecuado para pasar múltiples parámetros, y los parámetros se pueden pasar de manera flexible.

Método 4: método de parámetro de paso Java Bean

public User selectUser(Map<String, Object> params);

<select id="selectUser" parameterType="com.test.User" resultMap="UserResultMap">
    select * from user
    where user_name = #{userName} and dept_id = #{deptId}
</select>

Los nombres en # {} corresponden a los atributos del miembro en la clase Usuario.

Este método es muy intuitivo, pero necesita construir una clase de entidad, no es fácil de expandir, necesita agregar atributos, dependiendo de la situación.

28 artículos originales publicados · Me gusta 3 · Visitas 40,000+

Supongo que te gusta

Origin blog.csdn.net/qq_34291570/article/details/105520132
Recomendado
Clasificación