码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2020-11-06 02:27:36      阅读:23      评论:0      收藏:0      [点我收藏+]

标签:方法   mysq   class   ade   load   -o   inpu   input   config   

配置文件没有注册

技术图片

遇到这样的报错,可能是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导出资源问题

技术图片

 

 

在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. 重复声明 技术图片明明写了方法,在调用时却报错空指针。可能是因为对象被重复声明了。 在获取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);}

 



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

 

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

标签:方法   mysq   class   ade   load   -o   inpu   input   config   

原文地址:https://www.cnblogs.com/zheng-yi/p/13933233.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!