简述mybatis的配置和使用步骤,创建mybatis的配置文件过程
目录
MaBatis装载策略1。什么是延迟加载1.2实现1.2.1局部延迟加载1.2.2设置触发延迟加载的方法1.2.3全局延迟加载
MaBatis加载策略
1.什么是延迟加载
Mybatis中一对一、一对多、多对多关系的配置和实现都可以在实现对象的关联查询.实现,在实际开发过程中,我们在加载用户的信息时并不总是需要加载用户的订单信息。这就是我们所说的延迟装载。
例如:
问题1:在一对多中,当我们有一个用户,他有100个订单要查询这个用户,你想找出相关的订单吗?
答:查询用户时,用户下的订单应该是,什么时候使用,什么时候查询。(一对多)* *问题2: * *查询订单时,是否要找出关联的用户?
查询订单时,需要将订单所属的用户信息和订单一起查询出来。(多对一)1.1延迟加载是指在需要的时候加载数据,不需要的时候不加载数据。延迟加载也称为延迟加载。
注意:
延迟加载是基于嵌套查询来实现的
优点:先从单个表查询,必要时再从关联表查询,大大提高了数据库性能,因为查询单个表比通过关联查询多个表要快。
缺点:只有在需要数据的时候,才会进行数据库查询。这样,在查询大量数据时,由于查询工作也需要时间,用户的等待时间可能会变长,导致用户体验下降。
多表中:一对多,多对多:通常采用延迟加载的一对一(多对一);通常采用立即装船。
1.2实现
00-1010在关联和集合标记中都有一个fetchType属性。通过修改其值,可以修改本地加载策略。
Xml配置文件:
!-嵌套查询:查询用户对应的顺序-result map id= getuserinfowithnested type= user id property= id /id result property= username 列= username/result结果属性=生日列=生日/result结果属性=性别列=性别/result结果属性=地址列=地址/result!- fetchType=lazy 惰性加载策略fetchType=eager 立即加载策略-collection property= orders list of type= com . lagou . domain . orders select= com . lagou . mapper . orders . mapper . finduserallorder column= id fetch type= lazy /collection/result map select id= find user order 2 result map= getuserinfowithsnested select * from user/select
00-1010你配置了延迟加载策略后,发现即使不调用关联对象的任何方法,当你调用当前对象的equals、clone、hashCode、toString方法时,也会触发关联对象的查询。我们可以通过使用配置文件中的lazyLoadTriggerMethods配置项来覆盖上述四种方法。-设置延迟加载策略-设置!-所有方法都将延迟加载-setting name= lazyloadtriggermethods value= tostring()//settings
00-1010引入全局延迟加载以释放局部延迟加载。唯一的fetchType参数被添加到标记集合中。因此,所有嵌套查询都可以实现全局延迟加载。在Mybatis的核心配置文件中,可以使用setting标签来修改全局加载策略。设置!-所有方法都将延迟加载-setting name= lazyloadtriggermethods value= tostring()/!-打开全局延迟加载功能-设置name= lazy loading enabled value= true //设置注意:局部的加载策略优先级高于全局的加载策略。
订单未被查询:
关于Mybatis加载策略的这篇文章到此为止。关于Mybatis加载策略的更多信息,请搜索以前关于流行它的文章或继续浏览下面的相关文章。我希望你能支持在未来盛行它!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。