mybatis延迟加载是为什么(mybatis延迟加载的原理)

2022-07-22 20:58:58  浏览:323  作者:管理员
  • mybatis延迟加载是为什么(mybatis延迟加载的原理)

  • 【商户信息】

  • 类目:知识大全


  • 联系人:


  • 微信号:

  • Q Q 号:

  • 手机号:

  • 浏览量:

    323


【货源详情】


一. Mybatis延迟加载策略

1.1什么是延迟加载?

延迟加载:仅在需要数据时加载,不需要数据时不加载数据。 延迟加载也称为懒惰加载。

优点:首先从单个表中查询,然后根据需要从关联表中查询,大大提高了数据库的性能。 这是因为对单个表的查询比将多个表相关联更快。

缺点:由于只有在需要使用数据的情况下才能进行数据库查询,因此对于大量的数据查询,查询工作也很费时间,因此可能会增加用户的等待时间,降低用户体验。

1.2实现需求:

要求:查询帐户信息并关联用户信息。 首先查询账户信息可以满足要求,但如果需要查询用户信息,则查询用户信息。 对用户(User )信息的按需呼叫是延迟加载。

1.3关联延迟加载:

1.3.1账户持久层DAO接口:

1.3.2账户持久层映射文件:

1.3.3用户持久层接口和映射文件:

1.3.4打开my batis延迟加载策略:

必须将延迟加载配置文件添加到Mybatis配置文件SqlMapConfig.xml文件中。

1.3.5制定测试方法

1.4collection延迟加载:

1.4.1将ListAccount属性添加到用户实体类

1.4.2如何创建用户和帐户持久层接口

1.4.3创建用户持久层映射配置:

1.4.4创建帐户持久层映射配置:

1.4.5制定测试方法

二. Mybatis缓存

2.1 Mybatis缓存: l1缓存是SqlSession范围内的缓存,调用SqlSession更改、添加、删除、commit (,close )等方法时会清空l1缓存。

2.2 Mybatis缓存:二级缓存是映射级别的缓存,多个SqlSession使用同一映射的sql语句。 多个SqlSession可以共享二级缓存,二级缓存在SqlSession之间共享。

2.2.1打开和关闭缓存:

2.2.1.1步骤在SqlMapConfig.xml文件中打开二级缓存

2.2.1.2步骤2 :配置相关的Mapper映射文件

2.2.1.3在步骤statement上配置useCache属性

2.2.2缓存注意事项:使用二级缓存时,缓存的类必须实现java.io.Serializable接口,以便可以使用序列化方法存储对象。

第三章Mybatis注释开发

3.1 mybatis一般评论:

@Insert:实现新功能

@Update:实现更新

@Delete:删除

实现@Select:查询

@Result:实现结果集的封装

@Results:可以与@Result一起使用来封装多个结果集

@ResultMap:实现参考

封装@Results定义

@One:实现一对一的结果集封装

@Many:实现一对多结果集的封装

@SelectProvider:的动态SQL映射

@CacheNamespace:实现注释二级缓存的使用

使用3.2mybatis注释实现基本CRUD :

3.2.1创建实体类

3.2.2采用注释方式开发持久层界面:

3.2.2.1询问所有用户:

根据3.2.2.2询问用户:

3.2.2.3保存和更新操作:

3.2.2.4删除操作和聚合函数的使用

3.2.2.4模糊查询操作:

3.2.3创建sqlmap配置文件

3.2.4制定测试方法

3.3使用注释的复杂关系映射开发:

3.3.1复杂关系映射注释说明:

3.3.2使用注释实现复杂的一对一关系映射和延迟加载:

需求:加载账户信息时,且加载该账户的用户信息,可根据情况实现延迟加载。 (实现评论方式)

3.3.2.1添加用户实体类和帐户实体类:

3.3.2.2添加账户持久层界面,使用注释进行配置

3.3.2.3添加用户持久层界面,使用注释进行配置:

3.3.2.4测试一对一关联和延迟加载

3.3.3使用注释实现一对多复杂的关系映射:

需求:查询用户信息时,还必须查询他的账户列表。 用注释的方式实现。

分析:由于一个用户拥有多个帐户信息,因此形成了用户(User )与帐户之间的一对多关系。

3.3.3.1加入用户实体类ListAccount :

3.3.3.2创建用户持久层界面,并使用注释进行部署

@Many:

select属性:表示要执行的sql语句

fetchType属性:表示加载方法,通常在延迟加载时设置为LAZY值

3.3.3.3创建帐户持久层界面,并使用注释进行部署

3.3.3.4添加测试方法

评论区

共0条评论
  • 这篇文章还没有收到评论,赶紧来抢沙发吧~

【随机新闻】

返回顶部