myBatis执行测试批量删除,出现测试类正常显示,单数据库数据没变

一般在测试myBatis运行正常,单数据库数据不变时,有可能是SQL语句有问题,检查SQL语句没问题,但数据库依然没变,就说明myBatis方法执行后并未提交到数据库,可尝试在测试类添加   session.commit(); 可正常运行。

public class AppTest 

{

SqlSession session = null; Reader reader=null;
@Before
public void init()throws IOException {
Reader reader = Resources.getResourceAsReader("sqlMapConfig.xml");
SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(reader);
session = sessionFactory.openSession();
}
@After
public void destory()throws IOException {
if (session != null && reader != null) {
try {
session.commit();
} catch (Exception e) {
session.rollback();
} finally {
session.close();
reader.close();
}
}
}
/*批量删除*/
@Test
public void deleteempByForeach(){
Integer[] aid = {1001,1002};
int i = session.getMapper(empMapper.class).deleteempByForeach(aid);

/*关于提交数据问题:
* 当前面提取可after 有进行数据提交,而在执行测试时测试结果正常,
* 但是数据库无变化,说明@after 注解并没有提交数据到数据库
* 在测试类内部添加提价数据语句 session.commit(); 后正常 */

session.commit();
System.out.println(i);
  }
}

猜你喜欢

转载自www.cnblogs.com/chbin/p/10231586.html