Mybatis中的@param注解的用法
用注解来简化xml配置的时候,@Param注解的作用是给参数命名,参数命名后就能根据名字得到参数值,正确的将参数传入sql语句中
下午在写转账操作时,dao接口中的方法
@Update(update account set money = money - #{money} where id = #{id})
void updateAccount(int id,double money);
在刚开始总是出现500的错误,也就是服务器端错误,错误为:Parameter 'money' not found. Available parameters are [arg1, arg0, param1, param2]
而将void updateAccount(int id,double money);改为 void updateAccount(@param( " id ")int id,@param( " money ")double money);进行配置时就可完美运行
2.格式是 字段名+属性名,例如@param( " id ")是数据库中的字段名,id是类中的属性名,我这里只是命名重复了,
这段代码的作用就是实现数据库字段名和实体类属性的一一映射,不然数据库不知道如何匹配
id
3.update account set money = money - #{money} where id = #{id} 表示sql语句要接受2个参数,一个参数名是money,一个参数名是id,如果要正确的传入参数,那么就要给参数命名,因为不用xml配置文件,那么我们就要用别的方式来给参数命名,这个方式就是@Param注解
4.在方法参数的前面写上@Param("参数名"),表示给参数命名,名称就是括号中的内容
public Student select(@Param("aaaa") String name,@Param("bbbb")int class_id);
给入参 String name 命名为aaaa,然后sql语句....where s_name= #{aaaa} 中就可以根据aaaa得到参数值了