【狂神说MyBatis x--end】ResultMap&其他

微信狂神说公众号笔记03-07
狂神说网站05-11

1.resultMap【重点实验内容】

解决一个问题:实体类成员变量名称和数据库查询名称不一致。

自动映射:
实体类成员变量名称和数据库查询名称一样会自动映射。
核心配置文件设置,默认是PARTIAL,对嵌套结果不会自动映射。开启FULL则对相同名称的字段自动映射。


普通手动映射
property 实体类成员变量名
column 数据库查询的字段名(或别名)

<resultMap id="UserMap" type="User">
<!-- id为主键 -->
<id column="id" property="id"/>
<!-- column是数据库表的列名 , property是对应实体类的属性名 -->
<result column="name" property="name"/>
<result column="pwd" property="password"/>
</resultMap>

多对一
多个学生对应一个老师。每一个学生关联到一个老师。

子查询方法:
先找到每个学生。再根据学生的tid(老师ID)外键去找老师。
优点:SQL简单,分步复合常规思维。
缺点:慢。映射参数稍微多一点。判断是否正确难。

1.指定父查询的resultMap的studentTeacher。不要弄成resultType了(报错过)。
2.resultMap。IDEA会自动补全填id(映射名)和type(返回类型)。
关联用association。
property 需映射的实体类属性名。
column 传入字段作为子查询的查询参数。可以指定多个参数{id=author_id,likename=author_name}。
javaType 说明返回类型。
select指定子查询方法。
整一个association标签可以这么想:关联关系,现在对property属性映射,传入column,返回javaType,通过select方法。
用代码说明的形式是:property = (javaType) select(column)

    <select id="getStudents" resultMap="studentTeacher">
        select * from student
    </select>

    <resultMap id="studentTeacher" type="student">
        
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值