Caused by: java.lang.ClassNotFoundException: Cannot find class: Student 问题解决

方嘉志
2023-12-01

使用mybatis时遇到的问题,遇到好多次,终于解决了

原代码:

    <resultMap id="getStudentAndTeacher" type="Student">
        <id property="id" column="sid"/>
        <result property="name" column="sname"/>
        <association property="teacher" javaType="Teacher">
            <result property="name" column="tname"/>
        </association>
    </resultMap>

正确代码:

    <resultMap id="getStudentAndTeacher" type="top.jarvaniv.pojo.Student">
        <id property="id" column="sid"/>
        <result property="name" column="sname"/>
        <association property="teacher" javaType="top.jarvaniv.pojo.Teacher">
            <result property="name" column="tname"/>
        </association>
    </resultMap>

原因是要写全类名。


还有一解决方法,在mybatis的核心配置文件中给实体类配置别名

    <typeAliases>
        <package name="top.jarvaniv.pojo"/>
    </typeAliases>

使用包扫描,将pojo包下的所有实体类都赋予一个首字母小写(小驼峰命名法)的别名,使用时直接调用别名即可。


使用别名后的代码:

    <resultMap id="getStudentAndTeacher" type="student">
        <id property="id" column="sid"/>
        <result property="name" column="sname"/>
        <association property="teacher" javaType="teacher">
            <result property="name" column="tname"/>
        </association>
    </resultMap>
 类似资料: