zoukankan      html  css  js  c++  java
  • 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);
      }
    }
  • 相关阅读:
    高精度模板_C++
    NOIP总结
    HDU2063_过山车_C++
    手写堆_C++
    NOIP2013Day1解题报告
    [ CodeVS冲杯之路 ] P1368
    POJ1002_487-3279_C++
    [ CodeVS冲杯之路 ] P1092
    POJ2376_Cleaning Shifts_C++
    欧几里得距离_曼哈顿距离_切比雪夫距离
  • 原文地址:https://www.cnblogs.com/chbin/p/10231586.html
Copyright © 2011-2022 走看看