• 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);
      }
    }
  • 相关阅读:
    1004. Counting Leaves (30)
    51Nod 1272 最大距离 (栈或贪心)
    D
    M
    N
    F
    E
    L
    A. Office Keys ( Codeforces Round #424 (Div. 1, rated, based on VK Cup Finals) )
    K
  • 原文地址:https://www.cnblogs.com/chbin/p/10231586.html
Copyright © 2020-2023  润新知