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

有网站做淘宝天猫优惠券代理中心网站建设

有网站做淘宝天猫优惠券代理,中心网站建设,微信管理系统下载,新昌网站建设系列文章目录 高级Mybatis,一些结果映射,引入新的注解 目录 系列文章目录 文章目录 一、结果映射 1.ResultType 2.ResultMap 基础应用: 二、一对一 嵌套结果和嵌套查询 嵌套结果 嵌套查询 区别 三、一对多 四、多对多 五、注解补充 1.一对一…

系列文章目录

高级Mybatis,一些结果映射,引入新的注解

目录

系列文章目录

文章目录

一、结果映射

1.ResultType

2.ResultMap

基础应用:

二、一对一

嵌套结果和嵌套查询

嵌套结果

嵌套查询

区别

三、一对多

四、多对多

五、注解补充

1.一对一

2.一对多

六、缓存

1.一级缓存

2.缓存失效 

3.二级缓存

4.二级缓存的使用 

一、结果映射

1.ResultType

如果数据库中列名跟Java实体类中的属性名一模一样,则可以使用resultType 进行类型自动映射。

注意:使用resultType进行属性与字段映射,必须保证两者同名,名字不相 同,则无法完成映射

2.ResultMap

resultMap是提前定义好的一个映射规则,实现了查询列到类属性的映射。实 际开发中,我们在映射文件中,先定义出结果集映射resultMap,然后在select 语句上引用这个resultMap,最终完成结果映射。

基础应用:

<resultMap> 详解:

属性 id ,其值唯一,用来标识该resultMap

属性 type ,其值为实体类的全包名,用来指定映射对象的类型

属性 extends ,继承

子标签 <result> ,用来将查询的数据中一个指定类列的值映射到对象指 定的属性中

子标签 <id> ,和 <result> 标签功能相同,但是 <id> 用来映射的是表中 的主键

二、一对一

在MyBatis中,一对一关系映射是指两个实体之间的关系。在这种关系中,通 常有一个"主"表和一个"从"表。主表中的每一行都具有唯一标识符,并且在从 表中通过外键与主表相关联

嵌套结果和嵌套查询

嵌套结果( Nested Results :这种方式适用于主表和从表之间的关联字段
不是主键。
在映射文件中,先编写一个查询语句联合查询主表和从表,并使用 MyBatis
resultMap 指定结果集的映射关系。在 resultMap 中,使用嵌套的
<association> 标签将从表映射到主表的字段上。
嵌套查询( Nested Select :这种方式适用于主表和从表之间的关联字段
是主键。
在映射文件中,通过编写两个独立的 SQL 语句分别查询主表和从表的数
据,然后通过在主表查询结果上进行循环,并在循环中执行从表的查询,
将从表的数据映射到主表的对应对象中

 

嵌套结果

例如<association property="category" resultMap="CategoryResult"/>

嵌套查询

例: <association property="category" column="category_id" select="namespace名.findById3"/>

区别

嵌套结果映射通过多个 resultMap 组合实现每个属性值的映射 嵌套结果查询是在 SQL 中实现多表联查,且通常情况下需要执行多个 SQL 语句,并将结果拼接到一个对象中 在数据量较大的情况下,嵌套结果映射相对来说性能更高,但是查询时需 要考虑 SQL 的效率和维护成本。

三、一对多

如果查询的类别是一级分类,则其需要包含所有的子类别(二级分类)

如果查询的类别是二级分类,则其包含的子类别为null

一对多和一对一映射(含嵌套结果、嵌套查询),实现思路是类似的,,只是把association标签变为了collection标签

四、多对多

实际项目开发中,具有的多对多关系的实体,在具体业务实现时,可以简化为 一对多的关系。

多对多就是需要一张桥表,然后在此基础上转换为一对多进行处理

五、注解补充

1.一对一

MyBatis提供了 @One 注解来使用嵌套select语句加载一对一关联查询数据。

@Result(column = "addr_id",property = "address",

one = @One(select = "com.briup.demo05.mapper.StudentMapper.findAddressById")) }

2.一对多

MyBatis提供了 @Many 注解,用来使用嵌套Select语句加载一对多关联查询。

@Result(property = "courses", column = "id",

many = @Many(select ="com.briup.demo05.mapper.TutorMapper.findCoursesByTutorId")) }

六、缓存

缓存是一种临时存储数据的技术,用于提高数据访问的速度和性能。

MyBatis提供了缓存机制来提高数据库访问的性能。它的缓存是位于应用程序和 数据库之间的一层缓存。当应用程序查询数据时,MyBatis会先检查缓存中是否 有相应的结果。如果有,就直接从缓存中返回结果,而不需要再次访问数据 库,从而提高查询性能。

MyBatis的缓存分为两级:一级缓存和二级缓存。

1.一级缓存

默认情况下,MyBatis的一级缓存是开启的,也可以通过配置文件进行关闭

一级缓存是SqlSession级别的 ,通过同一个sqlSession查询的数据会被缓 存,下次查询相同的数据,就会从缓存中直接获取,不会从数据库重新访问。

2.缓存失效 

缓存失效的情况1: 同一个sqlSession但是查询条件不同

缓存失效的情况2: 不同的sqlSession对应不同的一级缓存

缓存失效的情况3: 同一个sqlSession两次查询期间执行了任何一次增删改操 作

缓存失效的情况4: 同一个sqlSession两次查询期间手动清空了缓存,调用sqlSession.clearCache();方法等,调用commit()、close()方法也会清空一级缓存。

3.二级缓存

MyBatis的二级缓存是一种在 Mapper级别 上操作的缓存机制。它旨在跨多个会 话缓存数据,通过减少数据库查询次数来提高应用程序的性能。

4.二级缓存的使用 

 

http://www.yayakq.cn/news/463276/

相关文章:

  • 智能建站系统怎么更换网站模板分类信息网站如何做排名
  • 阿里巴巴网站优化辅导班如何做网站
  • 常德网站设计字答科技wordpress设置邮箱
  • 四川建设监理协会网站网站营销方式有哪些内容
  • 在线免费网站建设平台wordpress在线视频直播
  • 可以免费进入的网站正能量域名深圳别墅装修设计公司报价
  • 北京网站空间域名建站公司都有哪些
  • 学校网站建设汇报ppt网站建设财务处理
  • 做网站哪个服务商便宜蚌埠大建设及棚户区改造官方网站
  • 网站管理与维护网站建设waocc
  • 做系统哪个网站上的好上海环球金融中心简介
  • 潮汕17网站一起做网店官网衡水做wap网站建设
  • 行业网站设计师招聘企业员工餐解决方案
  • 做网站软件war儿童做网站
  • 前端网站开发教程html网站建设的步骤
  • 电商网站的建设步骤海南省城乡建设厅网站
  • 公司制作网站怎么做评测网站做的那些条形图
  • 网站网络营销推广谷歌seo专员
  • 宁夏住房和城乡建设厅门户网站wordpress 限时 插件
  • ps做网站学到什么程度wordpress goodstore
  • wordpress网站如何迁移东莞市住房和城乡建设厅网站
  • 公司网站与营销网站怎么做页码
  • 正规的网站制作哪家好三只松鼠搜索引擎推广
  • 临沂建设网站公司wordpress虚拟资源
  • 上海做网站运维的公司宜昌做网站
  • 没有内容的网站应该怎么做医疗知识普及网站开发
  • 建设部网站官网合同网站制作中山
  • 珠海市企业网站制作服务机构wordpress注入点
  • 建设论坛网站网站推广服务好公司排名
  • 保定制作公司网站的公司装修设计软件app排行