服务器之家:专注于VPS、云服务器配置技术及软件下载分享
分类导航

PHP教程|ASP.NET教程|Java教程|ASP教程|编程技术|正则表达式|C/C++|IOS|C#|Swift|Android|VB|R语言|JavaScript|易语言|vb.net|

服务器之家 - 编程语言 - Java教程 - 关于mybatis一对一查询一对多查询遇到的问题

关于mybatis一对一查询一对多查询遇到的问题

2023-02-08 12:57roydon_Guo Java教程

这篇文章主要介绍了关于mybatis一对一查询,一对多查询遇到的错误,接下来是对文章进行操作,要求查询全部文章,并关联查询作者,文章标签,本文给大家介绍的非常详细,需要的朋友可以参考下

springboot整合mybatis项目
博客系统
文章,相册,评论,标签,等表
IDEA为最新版2021.3.3,mysql数据库为最新版Navicat
(或许有些字段不支持特定的命名)

也是醉了,以前idea还是19版的,navicat也是老版本的时候mybatis关联查询mapper操作能正常运行,拿到相应字段,并封装,但最近写项目过程中遇到一个离谱的是,过了好久才发现,

当关联查询时,无论一对一还是一对多
除了需要注意javaType和ofType之外,还应该注意各表主键不能同一名称

实体类文章

@Data
@AllArgsConstructor
@NoArgsConstructor
public class Article implements Serializable {
  private Integer id;
  private Integer authorId;
  private String title;
  private String content;
  private Timestamp date;//private LocalDate date;
  private Users user;
  private List<Comment> commentList;
  private List<ArticleTag> articleTagList;
}

接下来是对文章进行操作,要求查询全部文章,并关联查询作者,文章标签(一个文章多个标签)

先看一下我下面代码块的写法,注意一对一,一对多的各个实体查询时的id,都是拿的数据库的id字段,只有标签被我改为了tag_id

关于mybatis一对一查询一对多查询遇到的问题

<select id="queryAllArticles" resultMap="ArticleList">
      select a.*,u.*,t.*
      from article a
               join users u on a.authorid = u.id
               left outer join article_tag t on a.id = t.article_id
  </select>
  <resultMap id="ArticleList" type="article">
      <id column="id" property="id"/>
      <result column="authorid" property="authorId"/>
      <result column="title" property="title"/>
      <result column="content" property="content"/>
      <result column="date" property="date"/>
      <association property="user" javaType="users">
          <id column="id" property="id"/>
          <result column="pet_name" property="petName"/>
          <result column="headportrait" property="headPortrait"/>
      </association>
      <collection property="articleTagList" ofType="articleTag">
          <id column="tag_id" property="tagId"/>
          <result column="article_id" property="articleId"/>
          <result column="tag_content" property="tag"/>
      </collection>
  </resultMap>

如下图
所以当我测试的时候能正常根据id拿到每张表的同一主键名称id吗

并不能拿到
控制台仅仅正确输出了标签list中的tag_id,没错,细心点,我也是最后才发现,它nn的,上面输出的user(文章作者)他的id封装错了,他的id是这篇文章的id,所以,sql我自此所有表的主键不都全命名为id了,防止此处再烙下病根,而且数据库字段在命名时,我发现字段名字为describe和tag都查不到数据,本来想简简单单命名的数据库表,也得上心了拜拜了~~改bug去了✍️✍️
///

关于mybatis一对一查询一对多查询遇到的问题

看控制台输出/

我的用户表里就没有id为56的

关于mybatis一对一查询一对多查询遇到的问题

关于mybatis一对一查询一对多查询遇到的问题

关于mybatis一对一查询一对多查询遇到的问题

到此这篇关于关于mybatis一对一查询,一对多查询遇到的错误的文章就介绍到这了,更多相关mybatis一对一查询一对多查询内容请搜索服务器之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持服务器之家!

原文链接:https://blog.csdn.net/m0_51390535/article/details/124958067

延伸 · 阅读

精彩推荐
  • Java教程springboot框架的全局异常处理方案详解

    springboot框架的全局异常处理方案详解

    这篇文章主要介绍了springboot框架的全局异常处理方案,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下...

    一起随缘7612021-08-23
  • Java教程Java打包工具jar包详解

    Java打包工具jar包详解

    这篇文章主要介绍了Java打包工具jar包详解,在本例中我们引入一个叫jaxen.jar的库,并将所有以”org.jaxen”开头的类重命名以”org.example.jaxen”开头,具体实例...

    指尖上的代码go10422022-02-28
  • Java教程Spring MVC 文件上传的示例代码

    Spring MVC 文件上传的示例代码

    本篇文章主要介绍了Spring MVC 文件上传的示例代码,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧...

    yuanfy00811512021-01-09
  • Java教程初步理解Java的泛型特性

    初步理解Java的泛型特性

    这篇文章主要介绍了Java的泛型特性,是Java入门学习中的基础知识,需要的朋友可以参考下 ...

    phoenix0072432020-03-01
  • Java教程Java数据结构之队列(动力节点Java学院整理)

    Java数据结构之队列(动力节点Java学院整理)

    队列(Queue)是只允许在一端进行插入,而在另一端进行删除的运算受限的线性表。 这篇文章详细给大家介绍了java数据结构之队列,感兴趣的朋友跟随小编...

    动力节点4622020-09-10
  • Java教程Kotlin Coroutines执行异步加载示例详解

    Kotlin Coroutines执行异步加载示例详解

    这篇文章主要给大家介绍了关于Kotlin Coroutines执行异步加载的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或工作具有一定的参考学习价值...

    尺锤8292021-03-29
  • Java教程Jdbc连接数据库基本步骤详解

    Jdbc连接数据库基本步骤详解

    这篇文章主要为大家详细介绍了Jdbc连接数据库的基本步骤,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...

    溪山晴雪5342021-01-16
  • Java教程MyBatis-Plus如何最优雅最简洁地完成数据库操作

    MyBatis-Plus如何最优雅最简洁地完成数据库操作

    Mybatis-Plus是一个 Mybatis 的增强工具,在 Mybatis 的基础上只做增强不做改变,为简化开发、提高效率而生,下面这篇文章主要给大家介绍了关于MyBatis-Plus如何最优...

    冯文议8822022-09-01