第二章 SQL印射关系

本文详细介绍了MyBatis的SQL映射文件,包括mapper、resultMap、insert、update、delete、select等元素的用法。重点讨论了resultMap的resultType和resultMap属性,以及association和collection在处理复杂类型关联和集合映射中的应用。

第二章SQL印射关系

SQL印射文件
》mapper:印射文件的根元素节点,只有一个属性namespace。
》cache:配置给定命名空间的缓存。
》cache-ref:从其他命名空间引用缓存配置。
》resultMap:用来描述数据库结果集和对象的对应关系。
》sql:可以重用SQL块,也可以被其他语句引用。
》insert:印射插入语句。
》update:印射更新语句。
》delete:印射删除语句。
》select:印射查询语句。

ResultType
resultType直接表示返回类型,包括基础数据类型和复杂数据类型。

resultMap
resultMap则是对外部resultMap定义的引用,对应外部resultMap的id,表示返回结果印射到哪一个resultMap上。它的应用场景一般是:数据库字段信息与对象属性不一致或者需要做复杂的联合查询以便控制印射结果。

resultType和resultMap的关联
在MyBatis进行查询印射的时候,其实查询出来的每个字段都放在一个对应的Map里面,其中键是字段名,值则是其对应的值。当select元素提供的返回类型属性是resultType的时候,MyBatis会将Map里面的键值对取出赋给resultType所指定的对象对应的属性。当使用resultType的时候,直接在后台就能接收到其相应的对象属性值。其实MyBatis的每个查询印射的返回类型都是resultMap,只是当我们提供的返回类型属性是resultType的时候,MyBatis会自动把对应的值赋给resultType所指定对象的属性;当我们提供的返回类型是resultMap的时候,因为Map不能很好地表示领域模型,我们就需要通过进一步的定义把它转换为对应的实体对象。

resultMap的自动印射级别
选择部分字段进行resultMap印射,我们希望没有印射的字段是不能在后台查询并输出的,即使SQL语句中是查询所有字段,因为我们使用resultMap也是为了自由灵活地控制印射结果,达到只对关心的属性进行赋值填充的目的。

@Param注解实现多参数入参
使用@Param来传入多个参数。

resultMap的基本配置项
属性
》id:resultMap的唯一标识。
》type:表示该resultMap的印射结果类型。
子节点
》id:一般对应数据库中该行的主键id,设置此项可以提升MyBatis性能。
》result:印射到JavaBean的某个”简单类型”属性,如基础数据类型、包装类等。
子节点id和result均可实现最基本的结果集印射,将例印射到简单数据类型的属性。这两者唯一不同的是:在比较对象的实例时id将作为结果集的标识属性,有助于提高总体性能,特别是应用缓存和嵌套结果印射的时候。而要实现高级结果印射,就需要两个配置:association和collection。

association
association:印射到JavaBean的某个”复杂类型”,比如JavaBean类,即JavaBean内部嵌套一个复杂数据类型属性,这种情况就属于复杂类型关联。但是注意:association仅处理一对一的关联关系。

association的属性
》JavaType:完整Java类名或者别名。印射到一个JavaBean,则MyBatis通常会自行监测到其类型;印射到一个HashMap,则应该明确指定JavaType,来确保所需行为。
》property:印射数据库例的实体对象的属性。此处为在User里定义的属性:role。
association的子元素如下:
》id。
》result。
》property:印射数据库例的实体对象的属性。此处为Role的属性。
》column:数据库例名或别名。
collection
collection元素的作用和association元素的作用差不多,事实上,它们非常相似,也是印射到JavaBeau的某个复杂类型属性,只不过这个属性是一个集合列表,即JavaBeau内部嵌套一个复杂数据类型属性。和使用association元素一样。

本章总结
》MyBatis的SQL印射文件提供select、insert、update、delete等元素来实现SQL语句的印射。
》SQL印射文件的根节点是mappers元素,需要指定namespace来区别其他的mappers,保证全局唯一,并且其名称必须要跟接口同名,作用是绑定DAO接口,即面向接口编程。
》SQL印射文件的select的返回结果类型的印射可以使用resultMap和resultType,但不能同时使用。
》resultMap的association和collection可以实现高级结果印射。

该数据集通过合成方式模拟了多种发动机在运行过程中的传感器监测数据,旨在构建一个用于机械系统故障检测的基准资源,特别适用于汽车领域的诊断分析。数据按固定时间间隔采集,涵盖了发动机性能指标、异常状态以及工作模式等多维度信息。 时间戳:数据类型为日期时间,记录了每个数据点的采集时刻。序列起始于2024年12月24日10:00,并以5分钟为间隔持续生成,体现了对发动机运行状态的连续监测。 温度(摄氏度):以浮点数形式记录发动机的温度读数。其数值范围通常处于60至120摄氏度之间,反映了发动机在常规工况下的典型温度区间。 转速(转/分钟):以浮点数表示发动机曲轴的旋转速度。该参数在1000至4000转/分钟的范围内随机生成,符合多数发动机在正常运转时的转速特征。 燃油效率(公里/升):浮点型变量,用于衡量发动机的燃料利用效能,即每升燃料所能支持的行驶里程。其取值范围设定在15至30公里/升之间。 振动_X、振动_Y、振动_Z:这三个浮点数列分别记录了发动机在三维空间坐标系中各轴向的振动强度。测量值标准化至0到1的标度,较高的数值通常暗示存在异常振动,可能与潜在的机械故障相关。 扭矩(牛·米):以浮点数表征发动机输出的旋转力矩,数值区间为50至200牛·米,体现了发动机的负载能力。 功率输出(千瓦):浮点型变量,描述发动机单位时间内做功的速率,取值范围为20至100千瓦。 故障状态:整型分类变量,用于标识发动机的异常程度,共分为四个等级:0代表正常状态,1表示轻微故障,2对应中等故障,3指示严重故障。该列作为分类任务的目标变量,支持基于传感器数据预测故障等级。 运行模式:字符串类型变量,描述发动机当前的工作状态,主要包括:怠速(发动机运转但无负载)、巡航(发动机在常规负载下平稳运行)、重载(发动机承受高负荷或高压工况)。 数据集整体包含1000条记录,每条记录对应特定时刻的发动机性能快照。其中故障状态涵盖从正常到严重故障的四级分类,有助于训练模型实现故障预测与诊断。所有数据均为合成生成,旨在模拟真实的发动机性能变化与典型故障场景,所包含的温度、转速、燃油效率、振动、扭矩及功率输出等关键传感指标,均为影响发动机故障判定的重要因素。 资源来源于网络分享,仅用于学习交流使用,请勿用于商业,如有侵权请联系我删除!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值