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