mybatis传参的四种方式
一、单参数传递
User selectById(String userId);
<select id="selectById" paramType="java.lang.String" resultType="com.entity.User">
select id,name,age from user where id = #{userId}
</select>
二、多参数传递
1、传递map
mybatis底层就是把入参封装成map
User selectUser(Map<String, Object>);
<select id="selectUser" paramType = "java.util.Map">
select * from user where id = #{userId} and age = #{age}
</select>
Map<String, Object> map = new HashMap<>();
map.put("userId", "123");
map.put("age", "18")
2、传递POJO
UserInfo selectByEntity(UserEntity user);
<select id="selectByEntity" paramType="com.entity.UserEntity">
select * from user where id= #{id} and age = #{age}
</select>
@Data
public class UserEntity {
private String id;
private int age;
}
3、传递List
UserInfo selectByList(List<UserEntity> list);
<select id="selectByList" paramType="com.entity.UserEntity">
select * from user where id in
<foreach collection="list" item="item" open="(" close=")" separator=",">
#{item.id}
</foreach>
</select>
4、@Param
List<User> selectUser(@Param("id") String id, @Param("age") int age);
<select id="selectUser" resultType="com.entity.User">
select * from user where id = #{id} and age = #{age}
</select>
总结:一般可以灵活使用以上四种组合,传递参数,事半功倍!