赞
踩
仓库代码地址:https://gitee.com/luckkiven/tedu-boot-vue3.0-mp
如上图:
<select id="selectUsers" parameterType="int" resultType="User">
select
id ,
name ,
age ,
from user
where id = #{id}
</select>
这些情况下,MyBatis 会在幕后自动创建一个 ResultMap,基于属性名来映射列到 JavaBean 的属性上
单表时 ,可以很轻松的根据JDBC对实体对象进行值封装, 但是在多表操作中,甚至是对象里面嵌套对象的时候, 并不能一次封装到对象,再封装到属性里面去
所以此时要使用resultMap 去配置规则**.处理嵌套**,或者处理属性名和表字段名不一致的情况
你可以把resultMap 看成是手动配置结果集封装
ResultMap 的设计就是简单语句不需要明确的结果映射,而很多复杂语句确实需要描述它们 的关系。
走越多的表关联关系, 意味查询更多的数据, 时间增加.SQL复杂度增加
<!--column不做限制,可以为任意表的字段,而property须为type 定义的pojo属性-->
<resultMap id="唯一的标识" type="映射的pojo对象">
<id column="表的主键字段,或者可以为查询语句中的别名字段" jdbcType="字段类型" property="映射pojo对象的主键属性" />
<result column="表的一个字段(可以为任意表的一个字段)" jdbcType="字段类型" property="映射到pojo对象的一个属性(须为type定义的pojo对象中的一个属性)"/>
<association property="pojo的一个对象属性" javaType="pojo关联的pojo对象">
<id column="关联pojo对象对应表的主键字段" jdbcType="字段类型" property="关联pojo对象的主席属性"/>
<result column="任意表的字段" jdbcType="字段类型" property="关联pojo对象的属性"/>
</association>
<!-- 集合中的property须为oftype定义的pojo对象的属性-->
<collection property="pojo的集合属性" ofType="集合中的pojo对象" autoMapping="true(自动封装字段映射)">
<id column="集合中pojo对象对应的表的主键字段" jdbcType="字段类型" property="集合中pojo对象的主键属性" />
<result column="可以为任意表的字段" jdbcType="字段类型" property="集合中的pojo对象的属性" />
</collection>
</resultMap>
jtsys.sql
如何做到5表联查 .
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。