2023.11.27 关于 Mybatis 增删改操作

目录

引言

增加用户操作

删除用户操作

修改用户操作 


阅读下述文章之间 建议点击下方链接先了解 MyBatis 的创建与使用

MyBatis 的创建与使用


建议点击下方链接先了解 单元测试 的创建与使用

Spring Boot 单元测试的创建与使用


引言

  • 为了方便下文实现增、删、改操作
  • 我们先在数据库中创建好 user 表

2023.11.27 关于 Mybatis 增删改操作_第1张图片

增加用户操作

实例理解

  • 此处我们想 新增一条用户信息

初始化 UserMapper 接口

  • 此处我们在接口中添加两个 add 方法
  • add方法 返回影响行数
  • add2方法 返回影响行数 和 自增 id 值
import com.example.demo.entity.User;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

//添加 @Mapper 注解 代表该接口会伴随这 项目的启动而注入到容器中
@Mapper
public interface UserMapper {

//    新增用户信息 返回影响行数
    Integer add(User user);

//    新增用户信息,返回影响行数 和 自增 id 值
    Integer add2(User user);
}

初始化 UserMapper XML 文件

  • 在与 接口相对应的 XML 文件中
  • 添加上与 add 方法 和 add2 方法 相对应的 sql 语句
  • 理解其中 add2 xml 语句中 设置的两个属性
  •  useGeneratedKeys 表示在插入记录时,要求数据库生成主键值,并将生成的主键值返回给 MyBatis
  • keyProperty 指定生成的主键值设置到 Java 对象的哪个属性中,此处是设置到对象名为 id 的属性




    
        insert into user(name,age,password) values(#{name},#{age},#{password})
    

    
        insert into user(name,age,password) values(#{name},#{age},#{password})
    


创建 add 的测试方法

  • 创建一个 user 对象 ,并设置其属性,再使用 add 方法将其新增到数据库中
@Test
void add() {
    User user = new User();
    user.setName("maolin");
    user.setAge(20);
    user.setPassword("123");
    int result = userMapper.add(user);
    System.out.println("add 方法:" + (result == 1 ? "新增成功" : "新增失败"));
}

执行测试方法

  • 测试方法执行成功

2023.11.27 关于 Mybatis 增删改操作_第2张图片

  • 数据库成功新增用户信息

2023.11.27 关于 Mybatis 增删改操作_第3张图片


创建 add2 的测试方法

  • 创建一个 user 对象 ,并设置其属性,再使用 add2 方法将其新增到数据库中
@Test
void add2() {
    User user = new User();
    user.setName("zhangsan");
    user.setAge(38);
    user.setPassword("123456");
//    result 为受影响行数
    int result = userMapper.add2(user);
    System.out.println("add2 方法:" + (result == 1 ? "新增成功" : "新增失败"));
    System.out.println("自增 id 值为:" + user.getId());
}

执行测试方法

  • 测试方法执行成功

2023.11.27 关于 Mybatis 增删改操作_第4张图片

  • 数据库成功新增用户信息
  • 且自增 id = 9

2023.11.27 关于 Mybatis 增删改操作_第5张图片

删除用户操作

 实例理解

  • 此处我们想 根据 id 删除对应用户信息

初始化 UserMapper 接口

  • 此处我们在接口中添加一个 delete 方法
  • 其返回值为 受影响行数
import com.example.demo.entity.User;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

//添加 @Mapper 注解 代表该接口会伴随这 项目的启动而注入到容器中
@Mapper
public interface UserMapper {

//    根据用户id 删除用户信息
    Integer delete(@Param("user_id") Integer id);
}

初始化 UserMapper XML 文件

  • 在与 接口相对应的 XML 文件中
  • 添加上与 delete 方法相对应的 sql 语句




    
        delete from user where id = #{user_id}
    


创建 delete 的测试方法

  • 此处传入参数 id = 9
@Test
void delete() {
    int result = userMapper.delete(9);
    System.out.println("delete 方法:" + (result == 1 ? "删除成功" : "删除失败"));
}

执行测试方法

  • 测试方法执行成功

2023.11.27 关于 Mybatis 增删改操作_第6张图片

  • 数据库成功删除用户信息

2023.11.27 关于 Mybatis 增删改操作_第7张图片

修改用户操作 

  实例理解

  • 此处我们想 根据 id 修改用户密码

初始化 UserMapper 接口

  • 此处我们在接口中添加一个 update 方法
  • 其返回值为 受影响行数
import com.example.demo.entity.User;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

//添加 @Mapper 注解 代表该接口会伴随这 项目的启动而注入到容器中
@Mapper
public interface UserMapper {

//    根据 id 修改用户密码
    Integer update(@Param("user_id") Integer id,
                   @Param("new_password") String newPassword);
}

初始化 UserMapper XML 文件

  • 在与 接口相对应的 XML 文件中
  • 添加上与 update 方法相对应的 sql 语句




    
        update user set password = #{new_password} where id = #{user_id};
    


创建 update 的测试方法

  • 此处传入 id = 8 
  • 新密码为 "1234"
@Test
void update() {
    int result = userMapper.update(8,"1234");
    System.out.println("update 方法 :" + (result == 1 ? "修改成功" : "修改失败"));
}

执行测试方法

  • 测试方法执行成功

2023.11.27 关于 Mybatis 增删改操作_第8张图片

  • 数据库成功更改用户信息

2023.11.27 关于 Mybatis 增删改操作_第9张图片

你可能感兴趣的:(Spring,mybatis,java,开发语言)