Java企业级开发学习笔记(2.2)利用MyBatis实现CRUD操作
该文章主要为完成实训任务,详细实现过程及结果见【http://t.csdn.cn/ajSEO】
文章目录
- 一、准备工作
- 二、查询表记录
- 三、插入表记录
-
- 3.1 添加插入映射语句
- 3.2 在用户映射器结构添加插入方法
- 3.3 在测试类里测试插入方法
- 3.4 运行插入记录测试方法
- 3.5 运行姓名查询测试方法
- 四、更新表记录
-
- 4.1 在用户映射器配置文件里添加更新映射语句
- 4.2 在用户映射器接口添加更新方法
- 4.3 在测试类TestUserMapper里添加测试方法testUpdate()
- 4.4 运行更新用户记录测试方法
- 五、删除表记录
-
- 5.1 在用户映射器配置文件里添加删除映射语句
- 5.2 在用户映射器接口里添加删除方法
- 5.3 在测试类里添加删除记录测试方法
- 5.4 运行按编号删除记录测试方法
一、准备工作
- 打开
MyBatisDemo
项目
二、查询表记录
2.1 在映射器配置文件里引入结果映射元素
- 在
UserMapper.xml
文件里创建结果映射元素
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapperPUBLIC "-//mybatis.org//DTD Mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="cn.kox.mybatis.mapper.UserMapper"><!--结果映射:用户映射--><resultMap id="userMap" type="User"><result column="id" jdbcType="INTEGER" property="id" javaType="int"/><result column="name" jdbcType="VARCHAR" property="name" javaType="String"/><result column="age" jdbcType="INTEGER" property="age" javaType="int"/><result column="address" jdbcType="VARCHAR" property="address" javaType="String"/></resultMap><!--按编号查询用户记录--><select id="findById" parameterType="int" resultType="User">SELECT * FROM t_user WHERE id = #{id};</select><!--查询全部用户记录--><select id="findAll" resultMap="userMap">SELECT * FROM t_user;</select>
</mapper>
- 将
UserMapper
接口里抽象方法上的注解暂时注释掉 - 运行
TestUserMapper
测试类里的testFindAll()
测试方法,查看结果
2.2 添加按姓名查询用户记录功能
2.2.1 添加按姓名查询的映射语句
- 在
UserMapper.xml
里添加映射语句 -findByName
- 如果要实现按姓名模糊查询用户记录,那么语句要做如下修改
<!--按姓名查询用户记录--><select id="findByName" resultType="User">SELECT * FROM t_user WHERE name LIKE CONCAT(#{name}, "%");</select>
2.2.2 添加按姓名查询用户记录的测试方法
- 在
UserMapper
接口里添加findByName()
方法
2.2.3 添加按姓名查询用户记录的测试方法
- 在测试类
TestUserMapper
里添加测试方法testFindByName()
2.2.4 测试按姓名查询用户记录
- 运行测试方法
testFindByName()
,查看结果
三、插入表记录
3.1 添加插入映射语句
- 在
UserMapper.xml
文件里添加插入映射语句
3.2 在用户映射器结构添加插入方法
- 在
UserMapper
接口里添加insert()
方法,方法名insert
与插入映射语句里的id
值保持一致
3.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("遗憾,记录插入失败~");}}
3.4 运行插入记录测试方法
3.5 运行姓名查询测试方法
四、更新表记录
4.1 在用户映射器配置文件里添加更新映射语句
- 在
UserMapper.xml
里添加update
映射语句
<!--更新用户记录--><update id="update" parameterType="User">UPDATE t_user SET name = #{name}, age = #{age},address = #{address} WHERE id = #{id};</update>
4.2 在用户映射器接口添加更新方法
- 在
UserMapper
接口里添加update()
方法
4.3 在测试类TestUserMapper里添加测试方法testUpdate()
- 在测试类
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.4 运行更新用户记录测试方法
- 运行测试方法
testUpdate()
,查看结果
五、删除表记录
5.1 在用户映射器配置文件里添加删除映射语句
- 在
UserMapper.xml
件里添加映射语句deleteById
<!--按编号删除用户记录--><delete id="deleteById" parameterType="int">DELETE FROM t_user WHERE id = #{id};</delete>
5.2 在用户映射器接口里添加删除方法
- 在
UserMapper
接口里添加deleteById()
方法,方法名要与删除映射语句的id值保持一致
5.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 + "]的记录删除失败~"); }
}
5.4 运行按编号删除记录测试方法
- 运行测试方法
testDeleteById()
,查看结果