@Param注解在Mybatis中的使用 以及传递参数的三种方式


第一种:

Dao层的方法

public User selectUser(String name,String password);

对应的Mapper.xml

<select id="selectUser" resultMap="BaseResultMap"> select * from t_user where user_name = #{0} and user_password=#{1} </select>  

第二种:

该方法采用Map传多参数

Dao层的方法

public User selectUser(Map paramMap);

对应的Mapper.xml

<select id="selectUser" resultMap="BaseResultMap"> select * from t_user where user_name = #{userName,jdbcType=VARCHAR} and user_password=#{userPassword,jdbcType=VARCHAR} </select>

Service层调用

public User xxxSelectUser(){ Map paramMap=new hashMap(); paramMap.put("userName","对应具体的参数值"); paramMap.put("userPassword","对应具体的参数值"); User user=xxx.selectUser(paramMap); }

个人认为此方法不够直观,见到接口方法不能直接的知道要传的参数是什么。

第三种:@Param注解

Dao层的方法

public User selectUser(@Param("name")String name, @Param("password")String password);

对应的Mapper.xml

<select id=" selectUser" resultMap="BaseResultMap"> select * from t_user where user_name = #{name,jdbcType=VARCHAR} and user_password=#{password,jdbcType=VARCHAR} </select>

个人觉得三种之中这种可读性最好,建议双引号中的值和变量名保持一致

第一种占位符不够直观!


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM