今天又遇到了java.lang.ExceptionInInitializerError这个问题,因为以前遇到过,所以习惯性的找pom配置文件,然后发现没有错有,又看mybats.xml配置文件中写mapper文件的路径什么的,来来回回地该,文件来来回回地放位置,发现如轮如何还是这个错误
于是我又创建了一个新的配置文件名为aa.xml
然后里面什么都没写,我开始用测试类调试,发现可以获取到这个文件
我发现是mapper.xml文件出现了错误
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<!--namespace:绑定一个对应的UserMapper/UsaerDao接口-->
<mapper namespace="com.chen.dao.StudentMapper">
<select id="getstudent" resultMap="gst">
select s.id sid,s.name sname,t.name tname
from student s,teacher t
where s.tid=t.id
</select>
<resultMap id="gst" type="Student">
<result property="id" column="sid"></result>
<result property="name" column="sname"></result>
<association property="teacher" javaType="Teacher">
<result property="name" column="tname"></result>
</association>
</resultMap>
</mapper>
我以为是我sql语句写错,但是在数据库中能运行出来
这样我就非常疑惑,最后看报错信息,发现了这句话(这句话太靠后了,我刚开始根本美网后面看)
没有找到Student这个类,这时我才发现我的核心配置文件中没有写
<typeAliases>
<package name="pojo"/>
</typeAliases>
没有起别名(可以用包直接扫描别名)
总结:这个核心配置文件是我从我初始程序中拷贝过来的,由于上个程序用了别名,导致这个程序忘记了添加别名,导致自己寻找了半天,浪费了大量时间,所以大家在拷贝自己以前项目文件的时候,一定要思考一下自己是否缺少了哪些代码