IDEA生成Mybatis逆向工程(失败原因总结)

   首先说一下错误原因,主要有两种,

一.路径错误找不到指定的文件,这种比较好解决,因为比较明显,但是如果是这种原因把路径改成了绝对路径的话,运行会成功,但是发现代码没有生成!

Exception in thread "main" java.io.FileNotFoundException: mbg.xml (系统找不到指定的文件。)

二.就是自己的配置文件出错了,可能是生成的文件路径错误,使用idea的前期经常出现的错误,或者就是某个配置文件出错了。

 

IDEA生成Mybatis逆向工程(失败原因总结)_第1张图片

我的错误原因:

注释掉的是我开始的程序,错误的原因是第一种,无法找到文件,后来使用测试单元发现可以从当前路径找到配置文件!

package com.bhlc.crud.test;

import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import org.junit.jupiter.api.Test;
import org.mybatis.generator.api.MyBatisGenerator;
import org.mybatis.generator.config.Configuration;
import org.mybatis.generator.config.xml.ConfigurationParser;
import org.mybatis.generator.internal.DefaultShellCallback;

import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.List;


   /*
     设置的逆向工程的生成代码
    */
//public class MBGTest {
//    public static void main(String[] args) throws Exception {
//        List warnings = new ArrayList();
//        boolean overwrite = true;
//        File configFile = new File("mbg.xml");
//        ConfigurationParser cp = new ConfigurationParser(warnings);
//        Configuration config = cp.parseConfiguration(configFile);
//        DefaultShellCallback callback = new DefaultShellCallback(overwrite);
//        MyBatisGenerator myBatisGenerator = new MyBatisGenerator(config, callback, warnings);
//        myBatisGenerator.generate(null);
//        System.out.println("+============");
//    }
//}

public class MBGTest {
    public SqlSessionFactory getSqlSessionFactory() throws IOException {
        String resource = "mybatis-config.xml";
        InputStream inputStream = Resources.getResourceAsStream(resource);
        return new SqlSessionFactoryBuilder().build(inputStream);
    }

    @Test
    public void RunMbg() throws Exception {
        List warnings = new ArrayList();
        boolean overwrite = true;
        //mbg.xml配置文件
        File configFile = new File("mbg.xml");
        ConfigurationParser cp = new ConfigurationParser(warnings);
        Configuration config = cp.parseConfiguration(configFile);
        DefaultShellCallback callback = new DefaultShellCallback(overwrite);
        MyBatisGenerator myBatisGenerator = new MyBatisGenerator(config, callback, warnings);
        myBatisGenerator.generate(null);
    }
}

接下来看一下我的主要配置:

存放的路径(我在数据库里面建立了tbl_emp和tbl_dept两个表)

IDEA生成Mybatis逆向工程(失败原因总结)_第2张图片

1.maven项目的逆向工程配置 pom.xml

  

    org.mybatis.generator
    mybatis-generator-core
    1.3.7


    org.mybatis.generator
    mybatis-generator-maven-plugin
    1.3.7

2.mbg.xml的文件配置(注意,修改成自己对应的目录)





    
    
        
            
        
            
        
        

        
            
        
            
        
            
            
        
             
        
            
        
             
        
            
        
                
        

3.数据库配置文件

dbconfig.properties

jdbc.jdbcUrl=jdbc:mysql://localhost:3306/ssm_crud
jdbc.driverClass=com.mysql.jdbc.Driver
jdbc.user=root
jdbc.password=root

 

4.在test里建立MBGTest的测试程序

package com.bhlc.crud.test;

import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import org.junit.jupiter.api.Test;
import org.mybatis.generator.api.MyBatisGenerator;
import org.mybatis.generator.config.Configuration;
import org.mybatis.generator.config.xml.ConfigurationParser;
import org.mybatis.generator.internal.DefaultShellCallback;

import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.List;



public class MBGTest {
    public SqlSessionFactory getSqlSessionFactory() throws IOException {
        String resource = "mybatis-config.xml";
        InputStream inputStream = Resources.getResourceAsStream(resource);
        return new SqlSessionFactoryBuilder().build(inputStream);
    }

    @Test
    public void RunMbg() throws Exception {
        List warnings = new ArrayList();
        boolean overwrite = true;
        //mbg.xml配置文件
        File configFile = new File("mbg.xml");
        ConfigurationParser cp = new ConfigurationParser(warnings);
        Configuration config = cp.parseConfiguration(configFile);
        DefaultShellCallback callback = new DefaultShellCallback(overwrite);
        MyBatisGenerator myBatisGenerator = new MyBatisGenerator(config, callback, warnings);
        myBatisGenerator.generate(null);
    }
}

 

运行后结果:

IDEA生成Mybatis逆向工程(失败原因总结)_第3张图片

 

 

 

你可能感兴趣的:(ssm,idea,mybatis,逆向工程报错,ssm整合)