文章目錄
解決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語句成功了