2.5、MyBatis的XML基本用法——delete用法


2.5、MyBatis的XML基本用法——delete用法

 

1、简单用法

接口方法

/**
 * 通过主键删除
 * 
 * @param id
 * @return
 */
int deleteById(Long id);

/**
 * 通过主键删除
 * 
 * @param id
 * @return
 */
int deleteById(SysUser sysUser);
View Code

XML配置

<delete id="deleteById">
    delete from sys_user where id = #{id}
</delete>
View Code

测试代码

@Test
public void testDeleteById() {
    SqlSession sqlSession = getSqlSession();
    try {
        UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
        // 从数据库查询 1 个 user 对象,根据 id = 1 查询
        SysUser user1 = userMapper.selectById(1L);
        // 现在还能查询出 user 对象
        Assert.assertNotNull(user1);
        // 调用方法删除
        Assert.assertEquals(1, userMapper.deleteById(1L));
        // 再次查询,这时应该没有值,为 null
        Assert.assertNull(userMapper.selectById(1L));

        // 使用 SysUser 参数再做一遍测试,根据 id = 1001 查询
        SysUser user2 = userMapper.selectById(1001L);
        // 现在还能查询出 user 对象
        Assert.assertNotNull(user2);
        // 调用方法删除,注意这里使用参数为 user2
        Assert.assertEquals(1, userMapper.deleteById(user2));
        // 再次查询,这时应该没有值,为 null
        Assert.assertNull(userMapper.selectById(1001L));
        // 使用 SysUser 参数再做一遍测试
    } finally {
        // 为了不影响数据库中的数据导致其他测试失败,这里选择回滚
        // 由于默认的 sqlSessionFactory.openSession() 是不自动提交的,
        // 因此不手动执行 commit 也不会提交到数据库
        sqlSession.rollback();
        // 不要忘记关闭 sqlSession
        sqlSession.close();
    }
}
View Code

delete用法也只讲到这里,更复杂的可学习动态sql


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM