该文章主要为完成实训任务,详细实现过程及结果见【http://t.csdn.cn/ajSEO】
文章目录
- 一、准备工作
- 二、查询表记录
- 2.1 在映射器配置文件里引入结果映射元素
- 2.2 添加按姓名查询用户记录功能
- 2.2.1 添加按姓名查询的映射语句
- 2.2.2 添加按姓名查询用户记录的测试方法
- 2.2.3 添加按姓名查询用户记录的测试方法
- 2.2.4 测试按姓名查询用户记录
- 三、插入表记录
- 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 mapper
PUBLIC "-//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()
,查看结果