前言
上一章我们介绍了mybatis如何动态传参,
mybatis传参2 - 如何动态传参https://blog.csdn.net/m0_53753920/article/details/124156664
本章我们将介绍mybatis传入实体类型的参数。
mybatis传入各种类型参数系列之 让我们传入实体类参数,什么是实体类呢,也就是对象,pojo, model,entities。 它有很多种叫法,不知道有没有你中意的那一种。
引发的思考, 实体类类型有属性类型。话不多说,见下文。
目录
1.接口部分(如何写接口)
注意,这里新建用户的方式返回int或者void都是可以的,不一定需要int
/**
* 添加用户信息
*/
int user(User user);
2.mapper映射文件部分
注意,自增的ID设置为null
<!--int insertUser(User user)-->
<insert id="insertUser">
insert into t_user values(null, #{username}, #{password}, #{age}, #{sex}, #{email})
</insert>
3.测试类部分
@Test
public void testInsertUser() {
SqlSession sqlSession = SqlSessionUtils.getSqlSession();
ParameterMapper mapper = sqlSession.getMapper(ParameterMapper.class);
int result = mapper.insertUser(new User(null, "李四", "123", 23,"男", "123@qq.com"));
System.out.println(result);
}
4.执行测试本次结果
4.1单元测试结果
4.2mysql查询验证
新建用户成功。
5.POJO User实体类对象展示
package com.mybatis.pojo;
import java.util.Objects;
public class User {
private Integer id;
private String username;
private String password;
private int age;
private String sex;
private String email;
public User(Integer id, String username, String password, int age, String sex, String email) {
this.id = id;
this.username = username;
this.password = password;
this.age = age;
this.sex = sex;
this.email = email;
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
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{" +
"id=" + id +
", username='" + username + '\'' +
", password='" + password + '\'' +
", age=" + age +
", sex='" + sex + '\'' +
", email='" + email + '\'' +
'}';
}
@Override
public boolean equals(Object o) {
if (this == o) {
return true;
}
if (o == null || getClass() != o.getClass()) {
return false;
}
User user = (User) o;
return id == user.id && age == user.age && username.equals(user.username) && password.equals(user.password) && sex.equals(user.sex) && email.equals(user.email);
}
@Override
public int hashCode() {
return Objects.hash(id, username, password, age, sex, email);
}
}
6.结论
所以我们的结论是,直接通过属性名来访问属性值。