您好,登录后才能下订单哦!
本文小编为大家详细介绍“Mybatis中@Param注解怎么使用”,内容详细,步骤清晰,细节处理妥当,希望这篇“Mybatis中@Param注解怎么使用”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。
首先明确这个注解是为SQL语句中参数赋值而服务的。
@Param的作用就是给参数命名,比如在mapper里面某方法A(int id),当添加注解后A(@Param("userId") int id),也就是说外部想要取出传入的id值,只需要取它的参数名userId就可以了。将参数值传如SQL语句中,通过#{userId}进行取值给SQL的参数赋值。
mapper中的方法:
public User selectUser(@Param("userName") String name,@Param("password") String pwd);
映射到xml中的<select>标签
<select id="selectUser" resultMap="User"> select * from user where user_name = #{userName} and user_password=#{password} </select>
其中where user_name = #{userName} and user_password = #{password}中的userName和password都是从注解@Param()里面取出来的,取出来的值就是方法中形式参数 String name 和 String pwd的值。
SQL语句通过@Param注解中的别名把对象中的属性取出来然后复制
mapper中的方法:
public List<User> getAllUser(@Param("user") User u);
映射到xml中的<select>标签
<select id="getAllUser" parameterType="com.vo.User" resultMap="userMapper"> select from user t where 1=1 and t.user_name = #{user.userName} and t.user_age = #{user.userAge} </select>
当使用了@Param注解来声明参数的时候,SQL语句取值使用#{},${}取值都可以。
当不使用@Param注解声明参数的时候,必须使用的是#{}来取参数。使用${}方式取值会报错。
不使用@Param注解时,参数只能有一个,并且是Javabean。在SQL语句里可以引用JavaBean的属性,而且只能引用JavaBean的属性。
@Select("SELECT * from Table where id = #{id}") Enchashment selectUserById(User user);
首先解释一下为毛要用这个东西
当在查询的时候,一个参数的时候,在直接在入参中写入就可以了,但是当两个参数的时候,怎么办?
两种办法:第一用Map ,第二:就用@param,[可读性比较好,参数少的时候]
注意:当参数为2-5个时候,用@param最佳,当大于5的时候,肯定会选择map了
举例说明:
<select id="findRoleByMap" parameterType="map" resultType="role"> SELECT id,name FROM t_role WHERE roleName=#{roleName} AND note=#{note} <select>
读到这里,这篇“Mybatis中@Param注解怎么使用”文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注亿速云行业资讯频道。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。