Spring中的@Param注解
注:在不使⽤@Param注解的时候,函数的参数只能为⼀个,并且在查询语句取值时只能⽤#{},且其所属的类必须为Javabean,⽽使⽤
@Param注解则可以使⽤多个参数,在查询语句中使⽤时可以使⽤#{}或者${}
⼀.xml形式
实例⼀ @Param注解单⼀属性
Public User selectUser(@param(“userName”) String name, @param(“userpassword”) String password);
注意:采⽤#{}的⽅式把@Param注解括号内的参数进⾏引⽤(括号内参数对应的是形参如 userName对应的是name);
⼆.注解形式
1,使⽤@Param注解
当以下⾯的⽅式进⾏写SQL语句时:
@Select("select column from table where userid = #{userid} ")
public int selectColumn(int userid);
当你使⽤了使⽤@Param注解来声明参数时,如果使⽤ #{} 或 ${} 的⽅式都可以。
@Select("select column from table where userid = ${userid} ")
param namepublic int selectColumn(@Param("userid") int userid);
当你不使⽤@Param注解来声明参数时,必须使⽤使⽤ #{}⽅式。如果使⽤ 的⽅式,会报错。∗∗或者在mybatis中mapper⽂件中像这样写的⽅式,会报错。∗∗或者在mybatis中mapper⽂件中像这样写{_parameter},你只需要传⼊⼀条String类型的字符串。sql语句他就可以直接执⾏了,所以可以在动态配置的时候使⽤到该参数的含义:当只有⼀个参数,可以使⽤_parameter,它就代表了这个参数,如果使⽤@Param的话,会使⽤指定的参数值代替**
@Select("select column from table where userid = ${userid} ")
public int selectColumn(@Param("userid") int userid);
2,不使⽤@Param注解
不使⽤@Param注解时,参数只能有⼀个,并且是Javabean。在SQL语句⾥可以引⽤JavaBean的属性,⽽且只能引⽤JavaBean的属性。
// 这⾥id是user的属性
@Select("SELECT * from Table where id = ${id}")
Enchashment selectUserById(User user);
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论