关于mybatis中type-aliases-package使用的几个问题

2022-07-14 11:48:38

本文来说下关于mybatis中type-aliases-package使用的几个问题

文章目录


概述

mapper.xml中的resultType中经常会用到一些自定义POJO,你可以用完全限定名来指定这些POJO的引用,例如

<selectid="selectByStudentSelective"resultType="cn.wideth.entity.domain.Student">
     SELECT T.* FROM student T</select>

我们需要查询student表中所有学生的信息,定义了一个实体类student来映射表中所有的学生信息,把类的权限定类名放在resultType标签中即可,mybatis底层在返回数据库信息的时候,会根据Class.forName(“cn.wideth.entity.domain.Student”)去生成对象实例;


在这里插入图片描述
如果我们想在resultType标签中仅仅使用类名Student可不可以呢

<selectid="selectByStudentSelective"resultType="Student">
        SELECT T.* FROM student T</select>

这样也是可以的,只是需要在yml配置文件中提前进行配置

mybatis:config-location: classpath:mybatis/mybatis-config.xmlmapper-locations: classpath:mybatis/mapper/*.xmltype-aliases-package: cn.wideth.entity

在这里插入图片描述
这样也是可以的,springboot在启动的时候,会加载cn.wideth.entity包以及子包下所有的实体类,进行初始化操作。但是不同子包下面不可以存在同名的实体类。

在这里插入图片描述

子包下面存在同名实体类,结果报错了。


本文小结

尽量去使用实体类的全限定类名,这样会减少程序出现问题。

  • 作者:wh柒八九
  • 原文链接:https://blog.csdn.net/qq_31960623/article/details/119081928
    更新时间:2022-07-14 11:48:38