sqlSessionc操作数据库增删改无效问题
增删改无效问题?
mybatis在我们进行增删改操作时,程序不报错,正常编译运行,但是数据库数据却没有出现变化,这是因为mybatis的事务默认是开启状态,在我们进行增删改操作后,没有提交事务,连接关闭后,就会进行回滚,这也就导致我们看起来没有操作成功
解决办法:
1.在我们操作完数据后,提交事务,sqlSession.commit()方法
// 获取SqlSession
try (SqlSession sqlSession = MybatisUtil.getSqlSession()) {
// 得到UserMapper对象
UserMapper mapper = sqlSession.getMapper(UserMapper.class);
int i = mapper.deleteById(1);
System.out.println(i);
// 注意:增删改操作必须提交
sqlSession.commit();
} catch (Exception e) {
e.printStackTrace();
}
- sqlSessionFactory.openSession(ture);或者将里面参数设置为true,打开事务的自动提交功能
public class MybatisUtil {
private static SqlSessionFactory sqlSessionFactory;
static {
try {
// 获取sqlSessionFactory
InputStream in = Resources.getResourceAsStream("mybatis-config.xml");
sqlSessionFactory = new SqlSessionFactoryBuilder().build(in);
} catch (IOException e) {
e.printStackTrace();
}
}
/**
* 获取sqlSession对象
*/
public static SqlSession getSqlSession() {
// 默认开启事物
// 参数设置为true,则事务可以自动提交
return sqlSessionFactory.openSession(true);
}
}

浙公网安备 33010602011771号