一、准备工作
打开MyBatisDemo项目
二、查询表记录
1、在映射器配置文件里引入结果映射元素
在UserMapper.xml文件里创建结果映射元素
将UserMapper接口里抽象方法上的注解暂时注释掉
运行TestUserMapper测试类里的testFindAll()测试方法,查看结果
2、添加按姓名查询用户记录功能
(1)添加按姓名查询的映射语句
在UserMapper.xml里添加映射语句 - findByName
如果要实现按姓名模糊查询用户记录,那么语句要做如下修改
(2)在用户映射器接口里添加按姓名查询用户记录的方法
在UserMapper接口里添加findByName()方法
(3)添加按姓名查询用户记录的测试方法
在测试类TestUserMapper里添加测试方法testFindByName()
@Test
public 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(),查看结果
查看用户表记录