A: 这几天在开发过程中遇到一个问题:开发一个web项目,后台程序运行完全没问题(主要是关于对数据库的增删改查操作),但每当部署到Tomcat之后,再次调用相应的服务,返回结果永远是部署Tomcat之前的状态,如新增的数据查询不到、删除掉的数据仍然可以查出来(需要说明的是,每当新增或者删除数据之后,数据库中的数据是的的确确发生了变化的,只是查询不到而已)。将数据库的连接方式改为JDBC最原始的连接方式(之前是用Mybatis框架进行连接操作的),发现一切正常,遂确定是mybatis的使用问题。
原因:在每次对数据库进行增删改查操作时,大概的操作步骤是:获取SqlSession、数据库操作、sqlsession.commit()、sqlsession.close()。
而我在开发的过程中,在获取SqlSession时使用了静态方法,并且把它当作了全局变量使用,全局只用了一个SqlSession
解决方案:每次对数据库操作,都需要重新获取SqlSession,操作完成后提交,然后关闭连接,每次都要重复着一操作。