背景:mybatis操作数据库,发现程序运行成功,数据库没有数据!!!
原因:通过学习发现是因为没有commit的问题!!!
public void insertUser() {
SqlSession sqlSession = null;
try {
InputStream inputStream = Resources.getResourceAsStream("mybatis-config.xml");
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
sqlSession = sqlSessionFactory.openSession();
UserDao mapper = sqlSession.getMapper(UserDao.class);
User u = new User();
u.setId(4);
u.setUsername("Lili");
int i = mapper.insertUser(u);
System.out.println(i);
//就是这里!!!!!!!!!!!!!!
sqlSession.commit();
} catch (IOException e) {
e.printStackTrace();
sqlSession.rollback();
} finally {
sqlSession.close();
}
}
其实是这样的:
数据库引擎使用innodb,则有系统参数设置是否自动commit,默认不是。
同时因为我们使用sqlsession.close()的话,就会自动回滚再关闭。
感谢博主:
https://blog.csdn.net/Aphysia/article/details/80550001
对你有帮助的话,点个赞呗