Mybatis中@Param的用法和作用详解
简介
MyBatis 是一个支持定制化 SQL、存储过程以及高级映射的优秀的持久层框架。 MyBatis消除了几乎所有的JDBC代码和参数的手工设置以及对结果集的检索封装,使得开发者可以专注于几乎所有的SQL语句的开发,而无需去关心一些枯燥和重复的工作。
在Mybatis的开发中,@Param
注解用来声明 SQL 里传递的参数名和相应的值。该注解不是必须的,但是如果参数不只一个,则必须使用该注解进行声明。
作用
@Param
注解的作用是给 Mapper.xml 文件传递参数,XML 文件内可以轻松引用这个参数,以区别处理不同的参数名字。
用法
在使用Mybatis开发时,我们往往需要传入多个参数,这时就需要用到@Param注解。
在Mapper接口中声明方法时,可以使用@Param
声明参数名称并绑定参数值,如下示例:
@Select("SELECT * FROM user WHERE id = #{id} AND name = #{name}")
User selectOne(@Param("id") int id, @Param("name") String name);
以上示例中,我们声明了两个参数,分别是id和name,这两个参数的值会在运行时自动进行注入。需要注意的是,使用@Param
注解声明参数时,参数名称必须和SQL语句中的名称一致。
示例2:
@Update({
"update user set name = #{name}",
"where id = #{id}"
})
int updateUser(@Param("name") String name, @Param("id") int id);
上述示例中使用了Update注解对数据库进行更新,使用@Param注解声明了两个参数name和id,并分别绑定了更新的值。
需要注意的是,在使用@Param
注解时,参数名称一定要和 SQL 语句里的参数名字相同,不然会导致程序执行失败。一般来说,在SQL语句中写上参数名字即可,无需使用具体的值。
总结
@Param
注解是 Mybatis 在处理多参数时必须的注解,Mybatis还可以自动识别参数,同时也可以使用Map进行传递相应的参数,但是不建议使用Map等复杂对象传递参数,建议使用 @Param
注解传递。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Mybatis中@Param的用法和作用详解 - Python技术站