mybatis 事务问题
报错原因:
刚开始的时候写了两个查询都没问题,但是执行修改的时候发现走的挺成功但是数据库没有变化,就打断点发现也走了方法.同事就提了一嘴是不是事务的问题,忽然眼前一亮这是没有加入事务的修改:
@Override
public void updatePriceComparisonData(Map<String, Object> pramMap) throws SQLException {
SqlSession session = MybatisUtil.getSessionFactoty().openSession();
PriceComparisonDao mapper = session.getMapper(PriceComparisonDao.class);
try {
mapper.updatePriceComparisonData(pramMap);
} catch (Exception e) {
e.printStackTrace();
}finally {
session.close();
}
}
解决方案:
获取到session之后打开session的时候设置一下参数true
true为自动提交事务 ,false则相反(用于是否开启事务,默认为false不提交事务)
@Override
public void updatePriceComparisonData(Map<String, Object> pramMap) throws SQLException {
SqlSession session = MybatisUtil.getSessionFactoty().openSession(true);
PriceComparisonDao mapper = session.getMapper(PriceComparisonDao.class);
try {
mapper.updatePriceComparisonData(pramMap);
} catch (Exception e) {
e.printStackTrace();
}finally {
session.close();
}
}