Ocurrencia anormal:
interfaz de capa de mapeador
interfaz pública EmpMapper { public Emp getEmpByIdAndName (Id. entero, nombre de cadena); }
declaración xml: sql
< select id = "getEmpByIdAndName" resultType = "com.mybatis.bean.Emp" databaseId = "mysql" > seleccione * de emp donde id = # {id} y name = # {name} </ select >
Durante la prueba, la excepción anterior
En mybatis:
1 "Parámetro único: mybatis no realizará un procesamiento especial, # {nombre del parámetro / nombre arbitrario}: extraiga el valor del parámetro. Tales como:
public Emp getEmpById (ID de entero);
< select id = "getEmpById" resultType = "com.mybatis.bean.Emp" databaseId = "mysql" > seleccione * de emp donde id = # {id} </ select >
2》 Múltiples parámetros: mybatis hará un tratamiento especial. Se encapsularán múltiples parámetros en un mapa, clave: param1 ... paramN, o también es posible el índice del parámetro, valor: valor del parámetro entrante,
# {} Es obtener el valor de la clave especificada del mapa; de acuerdo con la solicitud de excepción, los parámetros disponibles son [0, 1, param1, param2], tales como:
public Emp getEmpByIdAndName (Id. entero, nombre de cadena);
< select id = "getEmpByIdAndName" resultType = "com.mybatis.bean.Emp" databaseId = "mysql" > seleccione * de emp donde id = # {0} y name = # {1} </ select >
O:
< select id = "getEmpByIdAndName" resultType = "com.mybatis.bean.Emp" databaseId = "mysql" > seleccione * de emp donde id = # {param1} y name = # {param2} </ select >
Pero el procesamiento anterior no se puede conocer, puede usar la anotación @Param en la interfaz, especificar claramente los parámetros encapsulados en la clave en el mapa
public Emp getEmpByIdAndName (@Param ("id") Id. entero, @Param ("name") String name);
En este momento, puede usar el nombre del parámetro especificado en el archivo xml:
< select id = "getEmpByIdAndName" resultType = "com.mybatis.bean.Emp" databaseId = "mysql" > seleccione * de emp donde id = # {id} y name = # {name} </ select >
Cuando pasamos más de dos parámetros, generalmente encapsulamos los parámetros en objetos.