mybatis总结

mybatis总结

编程走的坑

由于没有指定关联的 id,导致只查询出一对多的第一个元素

<resultMap id="blogResult" type="Blog">
  <id property="id" column="blog_id" />
  <result property="title" column="blog_title"/>
  <association property="author" javaType="Author">
    <id property="id" column="author_id"/>
    <result property="username" column="author_username"/>
    <result property="password" column="author_password"/>
    <result property="email" column="author_email"/>
    <result property="bio" column="author_bio"/>
  </association>
</resultMap>

当有关联关系时,id 元素在嵌套结果映射中扮演着非常重要的角色。你应该总是指定一个或多个可以唯一标识结果的属性。 虽然,即使不指定这个属性,MyBatis 仍然可以工作,但是会产生严重的性能问题。 只需要指定可以唯一标识结果的最少属性。显然,你可以选择主键(复合主键也可以)。不指定甚至有可能会发生错误。导致一对多查询,list中只查询出了一条结果。

不要填充使用代码生成器生成的代码

为什么呢,因为我们由于后期添加了属性字段,可能会使用代码生成器重新生成代码,这时候,就会覆盖我们之前手动写的代码,一般的做法是另起文件重新编写。

如果需要手动编写关联查询的话,在consumer包中新建实体,并填充方法,然后继承自数据库表中对应的实体

dao层也一样 重新创建类,进行接口的编写,不过不需要继承,只需要加上mapper注解就可以了

mapper配置文件一样,重新创建,不过修改命名空间为我们自定义的dao的包路径,然后编写查询

如果需要引用别的配置文件的resultmap的话,可以直接继承,如果是引用的话,可以直接根据 命名空间 + resultmapid进行引用

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值