2023.11.27 关于 Mybatis 增删改操作

目录

引言

增加用户操作

删除用户操作

修改用户操作 


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

MyBatis 的创建与使用


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

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


引言

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

增加用户操作

实例理解

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

初始化 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 的属性
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybati
s.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.example.demo.mapper.UserMapper">

    <insert id="add">
        insert into user(name,age,password) values(#{name},#{age},#{password})
    </insert>

    <insert id="add2" useGeneratedKeys="true" keyProperty="id">
        insert into user(name,age,password) values(#{name},#{age},#{password})
    </insert>

</mapper>

创建 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 ? "新增成功" : "新增失败"));
}

执行测试方法

  • 测试方法执行成功

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


创建 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());
}

执行测试方法

  • 测试方法执行成功

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

删除用户操作

 实例理解

  • 此处我们想 根据 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 语句
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybati
s.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.example.demo.mapper.UserMapper">

    <delete id="delete">
        delete from user where id = #{user_id}
    </delete>

</mapper>

创建 delete 的测试方法

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

执行测试方法

  • 测试方法执行成功

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

修改用户操作 

  实例理解

  • 此处我们想 根据 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 语句
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybati
s.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.example.demo.mapper.UserMapper">

    <update id="update">
        update user set password = #{new_password} where id = #{user_id};
    </update>

</mapper>

创建 update 的测试方法

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

执行测试方法

  • 测试方法执行成功

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

  • 16
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

茂大师

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值