Mybatis配置错误:java.lang.ExceptionInInitializerError

  • 情况一:配置文件,无法被导出或者生效
    修改前:

修改后:

究其原因,这是由于Maven的约定大于配置,导致我们写的配置文件,无法被导出或者生效的问题,解决方案:
在pom.xml文件中配置导出非resources文件夹下的xml文件和properties,这样在编译运行后target文件夹下就能找到对应的配置文件了。

<build>
        <resources>
            <resource>
                <directory>src/main/resources</directory>
                <includes>
                    <include>**/*.properties</include>
                    <include>**/*.xml</include>
                </includes>
                <filtering>true</filtering>
            </resource>
            <resource>
                <directory>src/main/java</directory>
                <includes>
                    <include>**/*.properties</include>
                    <include>**/*.xml</include>
                </includes>
                <filtering>true</filtering>
            </resource>
        </resources>
</build>
  • 情况二:Mybatis-config.xml配置文件或者XXXMapper.xml文件中存在中文注释。
    这是因为中文操作系统编码为GBK,MAVEN安装后默认使用系统编码GBK,导致在编译UTF-8格式的源代码文件时出现编码不匹配的问题。
  1. 当然你可以直接把中文注释删除,只是这不符合编程规范,那么你可以尝试第二种方法。

  2. MAVEN编码从GBK改为UTF-8。
    1.查看当前Maven默认的编码格式:
    cmd中输入mvn -v 可以查看Maven的属性

    2.设置环境变量,
    变量名: MAVEN_OPTS
    变量值: -Xms256m -Xmx512m -Dfile.encoding=UTF-8

    3.再次查看Maven属性,默认的编码格式已经发生改变。

    4.在pom.xml配置文件的中设置Maven编码格式:

    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
    <maven.compiler.encoding>UTF-8</maven.compiler.encoding>
    

  • 情况三:Mybatis-config.xml中没有配置mapper

每一Mapper.XML都需要dMybatis核心配置文件中注册

<mappers>
        <mapper resource="com/th/dao/UserMapper.xml"/>
</mappers>

posted @ 2020-12-17 09:26  三淳  阅读(974)  评论(0编辑  收藏  举报