解決Maven項目中junit測試數據庫CRUD操作sql語句重複提交的問題

解決Maven項目中junit測試數據庫CRUD操作sql語句重複提交的問題

問題

在maven項目中使用Junit測試mybatis操作數據庫, 執行插入語句時, 明明只寫了一條insert語句, 卻會進行重複插入操作, 導致報錯.

測試代碼

package cn.felix.dao;

import cn.felix.pojo.User;
import cn.felix.utils.MybatisUtil;
import org.apache.ibatis.session.SqlSession;
import org.junit.Test;


public class UserDaoTest {

    //
    @Test
    public void addUser() {
        //1.獲取sqlSession對象
        SqlSession sqlSession = MybatisUtil.getSqlSession();
        //2.獲取mapper對象
        UserMapper mapper = sqlSession.getMapper(UserMapper.class);
        //3.執行sql
        int res = mapper.addUser(new User(5, "張三", "23333"));

        if (res > 0) {
            System.out.println("插入成功!");
        }

        //4.提交事務
        sqlSession.commit();

        //5.關閉sqlSession
        sqlSession.close();
    }

}

報錯

在這裏插入圖片描述

玄學的解決方法

要首先在項目結構中把junit的jar包添加到外部庫中, 然後在項目根目錄下添加一個lib目錄把jar包放進去, 然後再在pom文件中添加本地的jar包依賴, 這時候運行仍然報之前哪個重複執行的錯誤; 這時候最迷的來了: 把pom文件中剛剛插入的本地jar包依賴給註釋掉, 這時候就發現可以執行sql語句成功了

在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述

結果

在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章