mybatis的dao中@param注解
2017年12月19日 20:01:47 LizhenBlog 阅读数:833
如果dao的方法中只有一个参数,比如这样
没有注解
public java.util.HashMap<String, Object> get1(String uname);
那么在mapper中,以下写法都可以
select * from t_user where uname = #{0}
select * from t_user where uname = #{uname}
select * from t_user where uname = #{aaa}
第一个好理解,就是获得第1个参数。第二个和第三个其实一样,sql中的参数名不是必须和dao中的一致,可以随便写。
如果带有注解
public java.util.HashMap<String, Object> get1(@Param("uname")String uname);
那么只能这样写
public java.util.HashMap<String, Object> get1(@Param("uname")String uname);
mapper里的变量名必须是注解里的名称,其他的都不行,即使用顺序#{0}也不可以。
如果是多个参数
不带注解
public java.util.HashMap<String, Object> get2(String uname,String pword);
只能通过#{0},#{1}采用序号访问,其他的都不行,即使#{uname},#{pword}也不可以。
带注解
public java.util.HashMap<String, Object> get3(@Param("uname")String uname,@Param("pword")String pword);
那就只能通过 #{注解名} 去访问了。