该文章主要为完成实训任务,详细实现过程及结果见【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(),查看结果
  



















