zoukankan      html  css  js  c++  java
  • 学习Mybatis中的缓存以减少对数据库的蹂躏

    一、一级缓存

    通过Mybatis自带缓存,且默认开启一级缓存,不开启二级,当使用同样的sqlsession对象查询相同数据时,只有第一次查询会向数据库发送查询语句,并将查询结果放入session缓存中,之后查询相同数据时,直接在缓存中取用即可。

    commit可以清除缓存。

    二、当二个或多个sqlsession对象查询相同数据时,那么可以开启二级缓存。

    在conf.xml文件中的开启日志setting标签下,添加标签<setting name="cacheEnabled" value="true">

    并在想要查询的数据库操作语句的mapper.xml文件中添加声明开启二级缓存。

    <cache/>即可。

    然后运行,会出现序列化问题。

     然后我们将会涉及到的实体类全部序列化,在实体类添加接口。

    implements Serializable。

    之后在测试类中:

    public static void queryPerson2_yijihuancun2() throws IOException{
    					//加载配置文件
    					Reader reader = Resources.getResourceAsReader("conf.xml");
    					//SqlsessionFactory -- conection
    					 SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(reader);
    					 SqlSession session = sessionFactory.openSession();
    					 personMapper personmapper = session.getMapper(personMapper.class);
    					 Person person = personmapper.queryPersonById(1);
    					 session.close();
    					 //第二次查询
    					 SqlSession session2 = sessionFactory.openSession();
    					 personMapper personmapper2 = session2.getMapper(personMapper.class);
    					 Person person2 = personmapper2.queryPersonById(1);
    					 System.out.println(person.toString()+","+person2.toString());
    					 session2.close();
    				}
    

      

     只查了一次。再次减少了对数据库的蹂躏。- .-

    注意:二级缓存的适用范围是同一个namespace。

  • 相关阅读:
    多级导航Menu的CSS
    Centos7在线安装PostgreSQL和PostGIS
    PostGis 根据经纬度查询两点之间距离
    在PowerDesigner中表显示中添加Code的显示
    Tomcat部署Geoserver
    PostGIS之路AddGeometryColumn函数添加一个几何类型字段
    怎样把多个excel文件合并成一个
    Error:java: 无效的目标发行版: 11
    PowerDesigner导出Excel
    GeoServer发布高清电子地图
  • 原文地址:https://www.cnblogs.com/jccjcc/p/13970054.html
Copyright © 2011-2022 走看看