2.4、MyBatis的XML基本用法——update用法

2.4、MyBatis的XML基本用法——update用法

1、简单用法

接口方法

/**
 * 根据主键更新
 * 
 * @param sysUser
 * @return
 */
int updateById(SysUser sysUser);
View Code

XML配置

<update id="updateById">
    update sys_user 
    set user_name = #{userName},
        user_password = #{userPassword},
        user_email = #{userEmail},
        user_info = #{userInfo},
        head_img = #{headImg, jdbcType=BLOB},
        create_time = #{createTime, jdbcType=TIMESTAMP}
    where id = #{id}
</update>
View Code

测试代码

@Test
public void testUpdateById() {
    SqlSession sqlSession = getSqlSession();
    try {
        UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
        // 从数据库查询 1 个 user 对象
        SysUser user = userMapper.selectById(1L);
        // 当前 userName 为 admin
        Assert.assertEquals("admin", user.getUserName());
        // 修改用户名
        user.setUserName("admin_test");
        // 修改邮箱
        user.setUserEmail("test@mybatis.tk");
        // 更新数据,特别注意,这里的返回值 result 是执行的 SQL 影响的行数
        int result = userMapper.updateById(user);
        // 只更新 1 条数据
        Assert.assertEquals(1, result);
        // 根据当前 id 查询修改后的数据
        user = userMapper.selectById(1L);
        // 修改后的名字 admin_test
        Assert.assertEquals("admin_test", user.getUserName());
    } finally {
        // 为了不影响数据库中的数据导致其他测试失败,这里选择回滚
        // 由于默认的 sqlSessionFactory.openSession() 是不自动提交的,
        // 因此不手动执行 commit 也不会提交到数据库
        sqlSession.rollback();
        // 不要忘记关闭 sqlSession
        sqlSession.close();
    }
}
View Code

update就介绍到这里,更复杂的就需要了解后面的动态sql用法了

posted @ 2018-02-28 15:29  LiveYourLife  阅读(1301)  评论(0)    收藏  举报