【笔记】MyBatis参数传递

前言

MyBatis多个参数传递学习笔记

散装方式

  • 散装方式可以直接传递变量,此时接口中的变量名就是xml的参数名
  • 也可以通过@Param("")注解指定参数名的映射关系
src/main/java/com/mapper/UserMapper.java
1
2
3
public interface UserMapper {
List<User> selectAll(int id, @Param("username") String name);
}
src/main/resources/com/mapper/UserMapper.xml
1
2
3
4
5
<select>
SELECT * FROM user
WHERE id = #{id}
AND name = #{username}
</select>

封装成对象

  • xml会自动从对象中的属性映射参数
src/main/java/com/pojo/User.java
1
2
3
4
public class User {
Integer id;
String name;
}
src/main/java/com/mapper/UserMapper.java
1
2
3
public interface UserMapper {
List<User> selectAll(User user);
}
src/main/resources/com/mapper/UserMapper.xml
1
2
3
4
5
<select>
SELECT * FROM user
WHERE id = #{id}
AND name = #{name}
</select>

Map集合

  • xml会自动从Map中的键值对映射参数
src/main/java/com/mapper/UserMapper.java
1
2
3
public interface UserMapper {
List<User> selectAll(Map map);
}
src/main/resources/com/mapper/UserMapper.xml
1
2
3
4
5
<select>
SELECT * FROM user
WHERE id = #{id}
AND name = #{name}
</select>

完成

参考文献

哔哩哔哩——黑马程序员