第一种:使用@Param注解传值
注意:#{}内的值必须与注解内的一致
接口内的抽象方法
/**
接口内的抽象方法
**/
public abstract User selectUser(@Param("id") int userId);
映射文件的sql语句
<!--
映射文件的sql语句
-->
<select id="selectUser" resultType="User">
select * from user where userId = #{id};
</select>
第二种:使用对象传值
注意:#{}内的值必须与对象的属性名一致
接口内的抽象方法
/**
接口内的抽象方法
**/
public abstract List<User> selectUser1(User user);
映射文件的sql语句
<!--
映射文件的sql语句
-->
<select id="selectUser1" resultType="User">
select * from user where userId = #{UserId} or sex = #{sex}
</select>
User对象
/**
User对象
**/
package com.example.bean;
public class User {
private int UserId;
private String UserName;
private String passWd;
private String sex;
private String email;
public User() {
}
public User(int userId, String userName, String passWd, String sex, String email) {
UserId = userId;
UserName = userName;
this.passWd = passWd;
this.sex = sex;
this.email = email;
}
public int getUserId() {
return UserId;
}
public void setUserId(int userId) {
UserId = userId;
}
public String getUserName() {
return UserName;
}
public void setUserName(String userName) {
UserName = userName;
}
public String getPassWd() {
return passWd;
}
public void setPassWd(String passWd) {
this.passWd = passWd;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
@Override
public String toString() {
return "User{" +
"UserId=" + UserId +
", UserName='" + UserName + '\'' +
", passWd='" + passWd + '\'' +
", sex='" + sex + '\'' +
", email='" + email + '\'' +
'}';
}
}
第三种:使用Map传值
注意:#{}内的值必须与Map的key一致
接口内的抽象方法
/**
接口内的抽象方法
**/
public abstract List<User> selectUserByMap(Map<String,Object> map);
映射文件的sql语句
<!--
映射文件的sql语句
-->
<select id="selectUserByMap" resultType="User">
select * from user where userId = #{id} or sex = #{sex}
</select>
Map集合的内容
Map<String,Object> map = new HashMap<>();
map.put("id",37);
map.put("sex","男");