mybatis.type-aliases-package之巨坑的解决

mybatis.type-aliases-package之巨坑

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

例如:

<select id="getUsers" resultType="com.majing.learning.mybatis.entity.User">,

又或者你可以通过在application.properties中指定POJO扫描包来让mybatis自动扫描到自定义POJO

如下:

mybatis.type-aliases-package=com.majing.learning.mybatis.entity

但是,请千万注意,不要再mybatis.type-aliases-package=后面接classpath这个单词,否则,mybatis会找不到POJO。

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 

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