传递多个参数的四种方式:
顺序传参: public User selectUser(String name,int deptId); <select id="selectUser" resultType="user">select * from user where user_name=#{0} and dept_id = #{1}</select> #{} 里面的数字代表你穿如参数的顺序. 不建议使用. sql 层表达不直观
@Param 注解传参: public User selectUser(@Param("userName")String name,@Param("deptId")int deptId); <select id="selectUser" resultType="user">select * from user where user_name=#{userName} and dept_id = #{deptId}</select> #{} 里面的名称对应的是注解 @Param 括号中修饰的名称, 这种情况在参数不多的情况下比较直观, 推荐之用
Map 传参法: public User selectUser(Map<String,Object> params); <select id="selectUser" resultType="user" parameterType="map">select * from user where user_name=#{userName} and dept_id = #{deptId}</select> #{} 里面的名称对应的是 Map 里面的 key 名称, 这种方法适合多个参数, 且参数易变能灵活传递的情况
Java Bean 传参数::public User selectUser(User user); <select id="selectUser" resultType="user" parameterType="user">select * from user where user_name=#{userName} and dept_id = #{deptId}</select> #{} 里面的名称对应的是 User 类里面的成员属性. 这种方法很直观, 但需要建一个实体类, 扩展不容易, 需要加属性, 看情况使用
来源: http://www.bubuko.com/infodetail-2580670.html