2.2 利用MyBatis实现CRUD操作
一、准备工作
打开MyBatisDemo项目
二、查询表记录
1、在映射器配置文件里引入结果映射元素
在UserMapper.xml文件里创建结果映射元素
将UserMapper接口里抽象方法上的注解暂时注释掉
运行TestUserMapper测试类里的testFindAll()测试方法,查看结果
2、添加按姓名查询用户记录功能
(1)添加按姓名查询的映射语句
在UserMapper.xml里添加映射语句 - findByName
如果要实现按姓名模糊查询用户记录,那么语句要做如下修改
(2)在用户映射器接口里添加按姓名查询用户记录的方法
在UserMapper接口里添加findByName()方法
(3)添加按姓名查询用户记录的测试方法
在测试类TestUserMapper里添加测试方法testFindByName()
@Testpublic void testFindByName() {String name = "王";// 调用用户映射器的查询方法List<User> users = userMapper.findByName(name);// 输出全部用户信息(采用了列表的遍历算子与Lambda表达式users.forEach(user -> System.out.println(user));}
(4)测试按姓名查询用户记录
运行测试方法testFindByName(),查看结果
如果没有查询出姓“王”的用户记录,应该是编码的问题,修改MyBatis配置文件
三、插入表记录
1、添加插入映射语句
在UserMapper.xml文件里添加插入映射语句
<!--插入用户记录--><insert id="insert" parameterType="User"useGeneratedKeys="true" keyProperty="id">INSERT INTO t_user(name, age, address)VALUES(#{name}, #{age}, #{address})</insert>
2、在用户映射器接口添加插入方法
在UserMapper接口里添加insert()方法,方法名insert与插入映射语句里的id值保持一致
3、在测试类里测试插入方法
在测试类TestUserMapper里添加测试方法testInsert()
@Test // 测试插入用户记录
public void testInsert() { // 创建用户对象 User user = new User(); // 设置对象属性 user.setName("王雨涵"); user.setAge(30); user.setAddress("龙马潭区长桥路2号"); // 插入用户记录 int count = userMapper.insert(user); // 提交数据库操作 sqlSession.commit(); // 判断插入记录是否成功 if (count > 0) { System.out.println("恭喜,记录插入成功~"); System.out.println("插入的新记录:" + user); } else { System.out.println("遗憾,记录插入失败~"); }
}
4、运行插入记录测试方法
运行测试方法testInsert(),查看结果
5、运行按姓名查询测试方法
运行测试方法testFindByName(),查看结果
四、更新表记录
1、在用户映射器配置文件里添加更新映射语句
在UserMapper.xml里添加update映射语句
<update id="update" parameterType="User">UPDATE t_user SET name = #{name}, age = #{age},address = #{address} WHERE id = #{id};
</update>
2、在用户映射器接口添加更新方法
在UserMapper接口里添加update()方法
3、在测试类添加更新记录测试方法
在测试类TestUserMapper里添加测试方法testUpdate()
@Test // 测试更新用户记录
public void testUpdate() { // 查找id为4的用户记录 User user = userMapper.findById(4); // 输出更新前的记录 System.out.println("更新前的记录:" + user); // 修改用户对象 user.setName("萌萌哒"); user.setAge(25); user.setAddress("北京朝阳区北苑路6号楼"); // 更新用户记录 int count = userMapper.update(user); // 判断更新是否成功 if (count > 0) { // 提交数据库操作 sqlSession.commit(); // 提示用户更新成功 System.out.println("恭喜,记录更新成功~"); System.out.println("更新后的记录:" + user); } else { // 提示用户更新失败 System.out.println("遗憾,记录更新失败~"); }
}
4、运行更新用户记录测试方法
运行测试方法testUpdate(),查看结果
五、删除表记录
1、在用户映射器配置文件里添加删除映射语句
在UserMapper.xml文件里添加映射语句deleteById
<delete id="deleteById" parameterType="int">DELETE FROM t_user WHERE id = #{id};
</delete>
2、在用户映射器接口里添加删除方法
在UserMapper接口里添加deleteById()方法,方法名要与删除映射语句的id值保持一致
3、在测试类里添加删除记录测试方法
在测试类TestUserMapper里添加测试方法testDeleteById()
@Test // 测试按编号删除用户记录
public void testDeleteById() { // 查找id为4的用户记录 int id = 4; User user = userMapper.findById(id); // 输出待删除的记录 System.out.println("待删记录:" + user); // 按编号删除用户记录 int count = userMapper.deleteById(id); // 判断删除是否成功 if (count > 0) { // 提交数据库操作 sqlSession.commit(); // 提示用户删除成功 System.out.println("恭喜,编号为[" + id + "]的记录删除成功~"); } else { // 提示用户删除失败 System.out.println("遗憾,编号为[" + id + "]的记录删除失败~"); }
}
4、运行按编号删除记录测试方法
运行测试方法testDeleteById(),查看结果
查看用户表记录