当前位置: 首页 > news >正文

景区加强网站建设青岛哪里有做网站公司的

景区加强网站建设,青岛哪里有做网站公司的,门户网站建设公司价位,公司网站域名的设计1.1 mybatis缓存介绍 如下图#xff0c;是mybatis一级缓存和二级缓存的区别图解#xff1a; Mybatis一级缓存的作用域是同一个SqlSession#xff0c;在同一个sqlSession中两次执行相同的sql语句#xff0c;第一次执行完毕会将数据库中查询的数据写到缓存#xff08;内…1.1     mybatis缓存介绍 如下图是mybatis一级缓存和二级缓存的区别图解   Mybatis一级缓存的作用域是同一个SqlSession在同一个sqlSession中两次执行相同的sql语句第一次执行完毕会将数据库中查询的数据写到缓存内存第二次会从缓存中获取数据将不再从数据库查询从而提高查询效率。当一个sqlSession结束后该sqlSession中的一级缓存也就不存在了。当遇到增删改时会清空缓存。Mybatis默认开启一级缓存。 Mybatis二级缓存是多个SqlSession共享的其作用域是mapper的同一个namespace不同的sqlSession两次执行相同namespace下的sql语句且向sql中传递参数也相同即最终执行相同的sql语句第一次执行完毕会将数据库中查询的数据写到缓存内存第二次会从缓存中获取数据将不再从数据库查询从而提高查询效率。当遇到增删改时会清空缓存。Mybatis默认没有开启二级缓存需要在setting全局参数中配置开启二级缓存。     1.2     一级缓存 1.2.1  原理 下图是根据id查询用户的一级缓存图解   一级缓存区域是根据SqlSession为单位划分的。 每次查询会先从缓存区域找如果找不到从数据库查询查询到数据将数据写入缓存。 Mybatis内部存储缓存使用一个HashMapkey为hashCodesqlIdSql语句。value为从查询出来映射生成的java对象 sqlSession执行insert、update、delete等操作commit提交后会清空缓存区域。   1.2.2  测试1 //获取session SqlSession session sqlSessionFactory.openSession();//获限mapper接口实例 UserMapper userMapper session.getMapper(UserMapper.class);//第一次查询 User user1 userMapper.findUserById(1);System.out.println(user1);//第二次查询由于是同一个session则不再向数据发出语句直接从缓存取出 User user2 userMapper.findUserById(1);System.out.println(user2);//关闭session session.close();   1.2.3  测试2   //获取session SqlSession session sqlSessionFactory.openSession();//获限mapper接口实例 UserMapper userMapper session.getMapper(UserMapper.class);//第一次查询 User user1 userMapper.findUserById(1);System.out.println(user1);//在同一个session执行更新 User user_update new User();user_update.setId(1);user_update.setUsername(李奎);userMapper.updateUser(user_update);session.commit();//第二次查询虽然是同一个session但是由于执行了更新操作session的缓存被清空这里重新发出sql操作 User user2 userMapper.findUserById(1);System.out.println(user2);   1.3     二级缓存 1.3.1  原理 下图是多个sqlSession请求UserMapper的二级缓存图解。     二级缓存区域是根据mapper的namespace划分的相同namespace的mapper查询数据放在同一个区域如果使用mapper代理方法每个mapper的namespace都不同此时可以理解为二级缓存区域是根据mapper划分。 每次查询会先从缓存区域找如果找不到从数据库查询查询到数据将数据写入缓存。 Mybatis内部存储缓存使用一个HashMapkey为hashCodesqlIdSql语句。value为从查询出来映射生成的java对象 sqlSession执行insert、update、delete等操作commit提交后会清空缓存区域。     1.3.2  开启二级缓存 在核心配置文件SqlMapConfig.xml中加入 setting namecacheEnabled valuetrue/     描述 允许值 默认值 cacheEnabled 对在此配置文件下的所有cache 进行全局性开/关设置。 true false true     要在你的Mapper映射文件中添加一行  cache / 表示此mapper开启二级缓存。   1.3.3  实现序列化          二级缓存需要查询结果映射的pojo对象实现java.io.Serializable接口实现序列化和反序列化操作注意如果存在父类、成员pojo都需要实现序列化接口。          public class Orders implements Serializable          public class User implements Serializable          ....   1.3.4  测试   //获取session1 SqlSession session1 sqlSessionFactory.openSession();UserMapper userMapper session1.getMapper(UserMapper.class);//使用session1执行第一次查询 User user1 userMapper.findUserById(1);System.out.println(user1);//关闭session1 session1.close();//获取session2 SqlSession session2 sqlSessionFactory.openSession();UserMapper userMapper2 session2.getMapper(UserMapper.class);//使用session2执行第二次查询由于开启了二级缓存这里从缓存中获取数据不再向数据库发出sql User user2 userMapper2.findUserById(1);System.out.println(user2);//关闭session2 session2.close();   1.3.5  禁用二级缓存 在statement中设置useCachefalse可以禁用当前select语句的二级缓存即每次查询都会发出sql去查询默认情况是true即该sql使用二级缓存。 select idfindOrderListResultMap resultMapordersUserMap useCachefalse   1.3.6  刷新缓存 在mapper的同一个namespace中如果有其它insert、update、delete操作数据后需要刷新缓存如果不执行刷新缓存会出现脏读。    设置statement配置中的flushCachetrue 属性默认情况下为true即刷新缓存如果改成false则不会刷新。使用缓存时如果手动修改数据库表中的查询数据会出现脏读。 如下 insert idinsertUser parameterTypecn.itcast.mybatis.po.User flushCachetrue转载于:https://www.cnblogs.com/xiaolovewei/p/9427016.html
http://www.zqtcl.cn/news/759554/

相关文章:

  • 做信息图的免费网站如何获取网站是哪个公司制作
  • 乐清建设网站哪家好seo一个月赚多少钱
  • 哈尔滨专业官网建站企业h5公众号开发
  • 商城网站建设精英wordpress实例配置
  • 国内网站开发语言模板兔自用主题WordPress
  • 天津营销网站建设公司哪家好市场营销平台
  • 上海企业响应式网站建设推荐网站建设类织梦模板
  • 洛阳最好的做网站的公司哪家好信誉好的邢台做网站
  • 织梦 旅游网站模板seo百家外链网站
  • 做网站提升公司形象摄影网站建设任务书
  • wordpress建站不好用wordpress共用用户多站点
  • 企业网站设计请示杭州做企业网站的公司
  • 苏宁易购网站建设的不足之处wordpress myisam
  • 互联网站建设维护是做什么的网站建设模板成功案例
  • 制作网站需要什么语言wordpress 免签约支付宝
  • 西安网站开发的未来发展易企网络网站建设
  • 贵州做网站怎么推广vs2012 做网站教程
  • 完全菜鸟七天学会建网站网络营销的四大基础理论
  • 东莞网站优化案例网站职业技术培训学校
  • 银川网站建设公司电话公司在百度做网站找谁
  • 交换链接适用于哪些网站网络规划与设计的目的
  • 网站做标签寺院网站模板
  • 高端h5网站柳州建站
  • 百度商桥网站郑州有做网站的公司没
  • 做专业网站济南品牌网站建设低价
  • 网站制作客户寻找数据中台厂商
  • 免费找图片素材的网站西安企业seo
  • 网站建设 名词解释国内网站建设建设
  • 文山州建设局网站域名查询seo
  • php网站模块修改太原小店区最新消息今天