tomcat mybatis数据库更改未反映出来

41ik7eoe  于 2021-10-10  发布在  Java
关注(0)|答案(0)|浏览(306)

我正在使用Tomcat8.5和mybatis构建我的web应用程序。然而,奇怪的是,当我直接从mysqlworkbench更改数据库中的数据时,在执行sql(发送get请求和获取数据)时,它并没有反映在我的应用程序上。当我重新启动tomcat服务器时,就会反映出这一点。我认为这是某种缓存问题,所以我在mybatis配置中禁用了缓存。

  1. <settings>
  2. <setting name="cacheEnabled" value="false" />
  3. <setting name="localCacheScope" value="STATEMENT"/>
  4. </settings>

另外,我直接使用sqlsession.clearcache(),但它仍然获取旧数据。

  1. public class ProductDao {
  2. private SqlSession sqlSession;
  3. public ProductDao() {
  4. sqlSession = DbUtil.getSqlSession();
  5. }
  6. public List<Product> getProductsByOrder(String order) {
  7. sqlSession.clearCache();
  8. System.out.println("fetching data from server");
  9. List<Product> productList = sqlSession.selectList("ProductMapper.getProductsByOrder", order);
  10. System.out.println(productList.get(0).getProductName());
  11. //sqlSession.clearCache(); it does not work
  12. return productList;
  13. }

因此,我认为缓存发生在tomcat中,但我非常怀疑,因为当我获取数据库中的产品列表时,会调用“getProductsBylder”,并记录“从服务器获取数据”。具体地说,当我在mysqlworkbench中将productname从test1更改为test2时,下面的日志 System.out.println(productList.get(0).getProductName()); 仍显示旧产品名称test1。

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题