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

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

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

<settings> 
    <setting name="cacheEnabled" value="false" /> 
    <setting name="localCacheScope" value="STATEMENT"/>

   </settings>

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

public class ProductDao {

private SqlSession sqlSession;

public ProductDao() {
    sqlSession = DbUtil.getSqlSession();
}

public List<Product> getProductsByOrder(String order) {
    sqlSession.clearCache();
    System.out.println("fetching data from server");
    List<Product> productList = sqlSession.selectList("ProductMapper.getProductsByOrder", order);
    System.out.println(productList.get(0).getProductName());
    //sqlSession.clearCache(); it does not work
    return productList;
}

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

暂无答案!

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

相关问题