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包以及子包下所有的实体类,进行初始化操作。但是不同子包下面不可以存在同名的实体类。

子包下面存在同名实体类,结果报错了。
小结一下:尽量去使用实体类的全限定类名,这样会减少程序出现问题。
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
相关文章
详解Spring Boot + Mybatis 实现动态数据源
这篇文章主要介绍了Spring Boot + Mybatis 实现动态数据源,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧2019-04-04
Spring Clou整合 Security + Oauth2 + jwt实现权限认证的详细过程
本文介绍了如何使用Spring Cloud、Spring Security、Oauth2和JWT实现统一认证和权限管理,并分享了项目结构和主要代码示例,感兴趣的朋友跟随小编一起看看吧2025-02-02
如何使用SpringBoot集成Kafka实现用户数据变更后发送消息
Spring Boot集成Kafka实现用户数据变更后,向其他厂商发送消息,我们需要考虑配置Kafka连接、创建Kafka Producer发送消息、监听用户数据变更事件,并将事件转发到Kafka,本文分步骤给大家讲解使用SpringBoot集成Kafka实现用户数据变更后发送消息,感兴趣的朋友一起看看吧2024-07-07


最新评论