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);
      }
    }
  • 相关阅读:
    洛谷 P3146 [USACO16OPEN]248
    洛谷 P2633 Count on a tree
    bzoj 1040 1040: [ZJOI2008]骑士
    poj 3417 Network
    洛谷 P2149 [SDOI2009]Elaxia的路线
    2、小文件问题解决
    ☀【组件
    -_-#【JS】隐含全局变量
    -_-#flash播放器自适应
    -_-#【插件】MD5
  • 原文地址:https://www.cnblogs.com/chbin/p/10231586.html
Copyright © 2011-2022 走看看