mybatis.type-aliases-package的作用及用法说明

 更新时间:2022年01月17日 14:44:14   作者:光阴不负卿  
这篇文章主要介绍了mybatis.type-aliases-package的作用及用法说明,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

mybatis.type-aliases-package的用法说明

在mapper.xml文件中的resultMap的type或者parameterType会用到自定义的POJO。

例如:

<mapper namespace="com.example.demo.mapper.UserMapper">
    <select id="findAll" resultType="User">
        select * from User
    </select>
    <select id="findByName" resultType="User">
        select * from User where username=#{username}
    </select>
    <select id="findPswByName" resultType="String">
        select password from user where username = #{username}
    </select>
    <insert id="save">
        insert into user(username,password) value (#{username},#{password})
    </insert>
</mapper>

其中resultType=“User”中,User就是自定义的POJO,此时可以使用完全限定名来指定这些POJO的引用,例如:

<select id="findByName" resultType="com.example.entity.User">

第二种方法就是使用mybatis.type-aliases-package来指定POJO扫描包来让mybatis自动扫描到自定义的POJO。

在application.propertites配置文件中配置如下信息:mybatis.type-aliases-package=com.example.entity

mybatis.type-aliases-package=com.example.demo.entity

type-aliases-package使用的几个问题

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

<select id="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可不可以呢

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

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

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

在这里插入图片描述

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

在这里插入图片描述

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

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

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • SpringCloudGateway开发过程解析

    SpringCloudGateway开发过程解析

    这篇文章主要介绍了SpringCloudGateway开发过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-12-12
  • SpringBoot项目如何访问jsp页面的示例代码

    SpringBoot项目如何访问jsp页面的示例代码

    本篇文章主要介绍了SpringBoot项目如何访问jsp页面的示例代码,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-10-10
  • 浅谈Java 中的单元测试

    浅谈Java 中的单元测试

    这篇文章主要介绍了Java 中的单元测试的相关资料,帮助大家更好的理解和使用Java,感兴趣的朋友可以了解下
    2020-09-09
  • java GUI编程之paint绘制操作示例

    java GUI编程之paint绘制操作示例

    这篇文章主要介绍了java GUI编程之paint绘制操作,结合实例形式详细分析了java GUI编程paint绘制相关操作技巧与使用注意事项,需要的朋友可以参考下
    2020-01-01
  • 解决外部jar包@Service无法注解无法扫描的问题

    解决外部jar包@Service无法注解无法扫描的问题

    这篇文章主要介绍了解决外部jar包@Service无法注解无法扫描的问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-10-10
  • Java中获取泛型类型信息的方法

    Java中获取泛型类型信息的方法

    本文主要介绍了Java中获取泛型类型信息的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-03-03
  • SpringBoot定时任务动态扩展ScheduledTaskRegistrar详解

    SpringBoot定时任务动态扩展ScheduledTaskRegistrar详解

    这篇文章主要为大家介绍了SpringBoot定时任务动态扩展ScheduledTaskRegistrar类示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-01-01
  • SpringBoot整合Redis实现高并发数据缓存的示例讲解

    SpringBoot整合Redis实现高并发数据缓存的示例讲解

    这篇文章主要介绍了SpringBoot整合Redis实现高并发数据缓存,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-03-03
  • Spring Boot日志基础使用之如何设置日志级别

    Spring Boot日志基础使用之如何设置日志级别

    这篇文章主要介绍了Spring Boot日志基础使用设置日志级别的方法,本文结合实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-09-09
  • java实现高效的枚举元素集合示例

    java实现高效的枚举元素集合示例

    Set是Java集合类的重要组成部分,它用来存储不能重复的对象。枚举类型也要求其枚举元素各不相同。看起来枚举类型和集合是很相似的。然而枚举类型中的元素不能随意的增加、删除,作为集合而言,枚举类型非常不实用。EnumSet是专门为enum实现的集合类,本实例将演示其用法
    2014-03-03

最新评论