阅读量:1
MyBatis可以通过两种方式接收多个参数:
- 使用@Param注解:在Mapper接口中的方法参数前添加@Param注解,指定参数的名称,然后在SQL语句中通过参数名来引用这些参数。
public interface MyMapper { List<User> getUsers(@Param("name") String name, @Param("age") int age); }
<select id="getUsers" resultType="User"> SELECT * FROM users WHERE name = #{name} AND age = #{age} </select>
- 使用Map或者JavaBean:可以将多个参数封装为一个Map或者JavaBean对象,然后将该对象作为方法的参数传递给Mapper接口。
public interface MyMapper { List<User> getUsers(Map<String, Object> params); }
<select id="getUsers" resultType="User"> SELECT * FROM users WHERE name = #{name} AND age = #{age} </select>
使用示例:
Map<String, Object> params = new HashMap<>(); params.put("name", "John"); params.put("age", 30); List<User> users = myMapper.getUsers(params);
或者:
public class UserParams { private String name; private int age; // getters and setters } UserParams params = new UserParams(); params.setName("John"); params.setAge(30); List<User> users = myMapper.getUsers(params);
无论使用哪种方式,MyBatis都会根据参数的名称或者属性名来匹配SQL语句中的参数。