在idea中搭建MyBatis可能遇到的问题

配置文件没有注册

在idea中搭建MyBatis可能遇到的问题

遇到这样的报错,可能是Mapper.xml没有注册。 解决方案: 在核心配置文件(一般叫mybatis-config.xml)的最后面加入 <mappers> <mapper resource="xxx/xxx/xxx"/> </mappers> ,在resource里将路径改为Mapper.xml(写sql语句的配置文件)的路径,如 <mapper resource="com/zheng/mapper/UserMapper.xml"/> 。

  1. Maven导出资源问题

在idea中搭建MyBatis可能遇到的问题

 

 

在Maven中可能遇到写了配置文件却找不到的问题。

解决方案: 在pom.xml中加入

 <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>

 

  1. 找不到依赖问题 我在搭建MyBatis时遇到手动导入mysql8的Jar包却找不到驱动,改了好多地方也不能解决。 解决方案:最后只能删除了手动导入的jar包改用maven导入。

 <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>8.0.16</version>
        </dependency>

 

  1. url输入错误 &需要转义才能被正确识别。 解决方案:&后需要加amp;

jdbc:mysql://localhost:3306/xxxx?useUnicode=true&amp;serverTimezone=GMT&amp;useSSL=false

 

  1. 重复声明 在idea中搭建MyBatis可能遇到的问题明明写了方法,在调用时却报错空指针。可能是因为对象被重复声明了。 在获取SqlSessionFactory的对象时,可以写成静态代码块



private static SqlSessionFactory sqlSessionFactory;
   static{
       try{
           String resource = "mybatis-config.xml";
           InputStream inputStream = Resources.getResourceAsStream(resource);
           SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);}
   catch (Exception e){
   e.printStackTrace();}
   }

 



解决方案:如果写成上面的代码,只需去掉try{}内部的 SqlSessionFactory类型声明

 


 
 try{
           String resource = "mybatis-config.xml";
           InputStream inputStream = Resources.getResourceAsStream(resource);
           sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);}

 



各位小可爱萌还应该多检查需要加路径的地方,注意路径是否添加正确,可以减少错误的发生。

 

上一篇:为什么在sqlSessionFactoryBeanName中要用value注入sqlSessionFactory,而不是ref?


下一篇:Mybatis - 笔记整理(一)