配置文件没有注册
遇到这样的报错,可能是Mapper.xml没有注册。 解决方案: 在核心配置文件(一般叫mybatis-config.xml)的最后面加入 <mappers> <mapper resource="xxx/xxx/xxx"/> </mappers> ,在resource里将路径改为Mapper.xml(写sql语句的配置文件)的路径,如 <mapper resource="com/zheng/mapper/UserMapper.xml"/> 。
-
Maven导出资源问题
在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>
-
找不到依赖问题 我在搭建MyBatis时遇到手动导入mysql8的Jar包却找不到驱动,改了好多地方也不能解决。 解决方案:最后只能删除了手动导入的jar包改用maven导入。
<dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>8.0.16</version> </dependency>
-
url输入错误 &需要转义才能被正确识别。 解决方案:&后需要加amp;
jdbc:mysql://localhost:3306/xxxx?useUnicode=true&serverTimezone=GMT&useSSL=false
-
重复声明 明明写了方法,在调用时却报错空指针。可能是因为对象被重复声明了。 在获取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);}
各位小可爱萌还应该多检查需要加路径的地方,注意路径是否添加正确,可以减少错误的发生。