如果只有一个简单类型的参数传入sql语句,我们可以在在#{}中可以随意命名,都可以获取到数据。但通常与接口方法中的参数同名。
但是如果有多个简单类型参数,如果没有特殊处理,那么Mybatis无法根据参数名获取数据。
正确获取方式如下:
- Mapper接口中抽象方法的声明
int updateEmployee(@Param("empId") Integer empId,@Param("empSalary") Double empSalary);
- SQL语句
<update id="updateEmployee">
update t_emp set emp_salary=#{empSalary} where emp_id=#{empId}
</update>
这样,我们就可以成功将参数传入到sql语句中。
对应关系如下:
总结
- 在有多个简单类型参数传入sql语句中,我们可以在接口方法形参中通过@Param注解为参数进行自定义参数名,这样我们就可以在sql语句中根据参数名直接获取对应数据。
- Mybatis也可以根据参数的位置进行获取:
- 从左到右为:arg0, arg1, arg2 …
- 也可以从左到右为:param1, param2, param3 …