目录
阅读下述文章之间 建议点击下方链接先了解 MyBatis 的创建与使用
建议点击下方链接先了解 单元测试 的创建与使用
引言
- 为了方便下文实现增、删、改操作
- 我们先在数据库中创建好 user 表
增加用户操作
实例理解
- 此处我们想 新增一条用户信息
初始化 UserMapper 接口
- 此处我们在接口中添加两个 add 方法
- add方法 返回影响行数
- add2方法 返回影响行数 和 自增 id 值
javaimport 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<?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 方法将其新增到数据库中
java@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 方法将其新增到数据库中
java@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 方法
- 其返回值为 受影响行数
javaimport 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<?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
java@Test void delete() { int result = userMapper.delete(9); System.out.println("delete 方法:" + (result == 1 ? "删除成功" : "删除失败")); }
执行测试方法
- 测试方法执行成功
- 数据库成功删除用户信息
修改用户操作
实例理解
- 此处我们想 根据 id 修改用户密码
初始化 UserMapper 接口
- 此处我们在接口中添加一个 update 方法
- 其返回值为 受影响行数
javaimport 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<?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"
java@Test void update() { int result = userMapper.update(8,"1234"); System.out.println("update 方法 :" + (result == 1 ? "修改成功" : "修改失败")); }
执行测试方法
- 测试方法执行成功
- 数据库成功更改用户信息