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

网站建设立项ppt阿里巴巴国际站买家版

网站建设立项ppt,阿里巴巴国际站买家版,开源的 二次网站开发,做网站的市场有那么大吗MyBatis中的延迟加载#xff0c;也称为懒加载#xff0c;是指在进行关联查询时#xff0c;按照设置延迟规则推迟对关联对象的select查询。延迟加载可以有效的减少数据库压力。 注意#xff1a;MyBatis的延迟加载只是对关联对象的查询有延迟设置#xff0c;对于主加载对象都…MyBatis中的延迟加载也称为懒加载是指在进行关联查询时按照设置延迟规则推迟对关联对象的select查询。延迟加载可以有效的减少数据库压力。 注意MyBatis的延迟加载只是对关联对象的查询有延迟设置对于主加载对象都是直接执行查询语句的。 一、关联对象加载时机 、关联对象加载时机 MyBatis根据对关联对象查询的select语句的执行时机分为三种类型直接加载、侵入式加载与深度延迟加载 直接加载执行完对主加载对象的select语句马上执行对关联对象的select查询。     侵入式延迟执行对主加载对象的查询时不会执行对关联对象的查询。但当要访问主加载对象的详情时就会马上执行关联对象的select查询。即对关联对象的查询执行侵入到了主加载对象的详情访问中。也可以这样理解将关联对象的详情侵入到了主加载对象的详情中即将关联对象的详情作为主加载对象的详情的一部分出现了。     深度延迟执行对主加载对象的查询时不会执行对关联对象的查询。访问主加载对象的详情时也不会执行关联对象的select查询。只有当真正访问关联对象的详情时才会执行对关联对象的select查询。 注意延迟加载的应用要求关联对象的查询与主加载对象的查询必须是分别进行的select语句不能是使用多表连接所进行的select查询。因为多表连接查询其实质是对一张表的查询对由多个表连接后形成的一张表的查询。会一次性将多张表的所有信息查询出来。 二、直接加载 1.主配置文件(Mybatis.xml) 全局属性lazyLoadingEnabled的值只要设置为false那么对于关联对象的查询将采用直接加载。即在查询过主加载对象后会马上查询关联对象。 lazyLoadingEnabled的默认值为false即直接加载。 settings!-- 延迟加载总开关 --setting namelazyLoadingEnabled valuefalse/ /settings2.mapper映射文件  mapper namespacecom.hcx.dao.IMinisterDaoselect idselectCountryById resultTypeCountryselect cid,cname from country where cid#{cid}/selectresultMap typeMinister idministerMapperid columnmid propertymid/result columnmname propertymname/association propertycountryjavaTypeCountryselectselectCountryByIdcolumncountryId//resultMapselect idselectMinisterById resultMapministerMapperselect mid,mname,countryId from minister where mid#{mid}/select /mapper3.测试类 当程序执行到断点处语句时不仅对country表进行了查询对minister表也同时进行了查询。 public class MyTest {private ICountryDao dao;private SqlSession session;Beforepublic void setUp(){session MyBatisUtils.getSqlSession();dao session.getMapper(ICountryDao.class);}Afterpublic void tearDown(){if(session!null){session.close();}}Testpublic void test01(){ Country country dao.selectCountryById(2);//此处加断点System.out.println(country);System.out.println(country.getMinisters().size());} }三、深度延迟加载 修改主配置文件的将延迟加载开关lazyLoadingEnabled开启置为true将侵入式延迟加载开关aggressiveLazyLoading关闭置为false。 settings!-- 延迟加载总开关 --setting namelazyLoadingEnabled valuetrue/!-- 侵入式延迟加载开关 --setting nameaggressiveLazyLoading valuefalse/ /settings此时只有当代码执行到输出Minister对象详情时底层才执行select语句对minister表进行查询。 四、侵入式延迟加载 修改主配置文件的将延迟加载开关lazyLoadingEnabled开启置为true将侵入式延迟加载开关aggressiveLazyLoading也开启置为true默认为true。 settings!-- 延迟加载总开关 --setting namelazyLoadingEnabled valuetrue/!-- 侵入式延迟加载开关 --setting nameaggressiveLazyLoading valuetrue/ /settings测试类 Test public void test01(){ Country country dao.selectCountryById(2);//此处加断点System.out.println(country);System.out.println(country.getMinisters().size()); }当代码执行断点处语句时会立即查询country表但每查询minister表。说明现在的延迟加载已经启动。 当对country对象的详情进行访问时对minister表也进行了查询。因为该延迟加载策略已经将主加载对象的关联属性也作为主加载对象的基本信息了而前面已经查询出了主加载对象的基本信息但其关联对象基本信息尚无。所以马上进行对minister表的查询。 换个角度来说该延迟策略使关联对象的数据侵入到了主加载对象的数据中所以称为侵入式延迟加载。 注意该延迟策略也是一种延迟加载需要在延迟加载开关lazyLoadingEnabled开启时才会起作用。若lazyLoadingEnabled为false则aggressiveLazyLoading无论取何值均不起作用。
http://www.zqtcl.cn/news/114182/

相关文章:

  • 如何建造企业网站北京金山办公软件公司
  • dedecms织梦搬家公司网站模板贵阳国家经济技术开发区门户网站
  • 网站架构设计师网络工程师的就业前景
  • 网站建设所需人员世界各国o2o响应式网站
  • 成都网站设计最加科技企业宣传片观后感
  • 人社门户网站建设方案非官方网站建设
  • 深圳系统网站开发做家具定制的设计网站
  • 网站制作学费多少钱网络推广的常用方法
  • 个人作品网站模板百度上做网站需要钱吗
  • 苏州网站建设行业研究思路 网站建设
  • 金泉网做网站找谁网站的结构布局
  • 网站开发摊销年限柳州网站建设哪家
  • 佛山市和城乡建设局网站首页武建安装公司新闻
  • 如何宣传商务网站网页制作与设计自考
  • 在国内的服务器上建设国外网站响应式单页网站模板
  • 平湖市住房建设局网站国外代理ip
  • 铁路建设监理网站地推项目发布平台
  • 我的世界做指令的网站网站如何在推广
  • 过年做那个网站致富盘锦网站建设vhkeji
  • 网站semseo先做哪个关键词投放
  • 药品招商网站大全南阳做网站公司电话
  • 优秀手机网站大学生创新产品设计作品
  • 备案期间关闭网站宝应人才网
  • 响应式网站一般做几个版本官网+wordpress
  • 太原网站建设方案服务佛山市建设工程有限公司
  • 智能网站建设平台php mysql 网站源码
  • 夏天做那些网站能致富百度关键词价格怎么查询
  • 厦门微信网站专业从事网站开发公司
  • 网站标题的写法湖南如何做网络营销
  • 设计做兼职的网站求推荐医院英文网站建设