mybatis传参3 - 传入实体类类型的参数

前言

上一章我们介绍了mybatis如何动态传参,

mybatis传参2 - 如何动态传参icon-default.png?t=M3C8https://blog.csdn.net/m0_53753920/article/details/124156664

本章我们将介绍mybatis传入实体类型的参数。

mybatis传入各种类型参数系列之 让我们传入实体类参数,什么是实体类呢,也就是对象,pojo, model,entities。 它有很多种叫法,不知道有没有你中意的那一种。

引发的思考, 实体类类型有属性类型。话不多说,见下文。

目录

1.接口部分(如何写接口)

2.mapper映射文件部分

3.测试类部分

4.执行测试本次结果

4.1单元测试结果

4.2mysql查询验证

5.POJO User实体类对象展示

6.结论


1.接口部分(如何写接口)

注意,这里新建用户的方式返回int或者void都是可以的,不一定需要int

    /**
     * 添加用户信息
     */
    int user(User user);

2.mapper映射文件部分

注意,自增的ID设置为null 

    
    
        insert into t_user values(null, #{username}, #{password}, #{age}, #{sex}, #{email})
    

3.测试类部分

    @Test
    public void testInsertUser() {
        SqlSession sqlSession = SqlSessionUtils.getSqlSession();
        ParameterMapper mapper = sqlSession.getMapper(ParameterMapper.class);
        int result = mapper.insertUser(new User(null, "李四", "123", 23,"男", "[email protected]"));
        System.out.println(result);

    }

4.执行测试本次结果

4.1单元测试结果

mybatis传参3 - 传入实体类类型的参数_第1张图片

4.2mysql查询验证

mybatis传参3 - 传入实体类类型的参数_第2张图片

新建用户成功。

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.结论

所以我们的结论是,直接通过属性名来访问属性值。

你可能感兴趣的:(mybatis,java)