逆向工程


通过前面的学习,在实际开发中,我们基本上能对mybatis应用自如了,但是我们发现了一个问题,所有操作都是围绕着po类,xxxMapper.xml文件,xxxMapper接口等文件来进行的。如果实际开发中数据库的表特别多,那么我们需要手动去写每一张表的po类,xxxMapper.xml,xxxMapper.java文件,这显然需要花费巨大的精力,而且可能由于表字段太多,写错了而不知道也是可能的。

所以我们在实际开发中,一般使用逆向工程方式来自动生成所需的文件。

①、新建一个工程,并导入相应的jar包


	org.mybatis
	mybatis
	3.4.5



	mysql
	mysql-connector-java
	5.1.49



	org.mybatis.generator
	mybatis-generator-core
	1.4.1

注意:使用逆向工程时,最好新建一个工程,如果你在原来的工程中使用,那也可以,但是有一定的风险,因为mybatis是根据配置文件中配置的路径来生成的文件的,如果你工程中有相同名字的文件,那么就会被新生成的文件所覆盖。所以实际开发中,我们一般新建一个工程,将生成的文件复制到自己的所需的工程中。

②、创建配置文件 generatorConfig.xml 文件

<?xml version="1.0" encoding="UTF-8"?>



    

        
        
        
        
        
        
        
        
        

        
            
            
        
        
        
        
        

        
        
            
        

        
        
            
            
            
            
        

        
        
            
            
        

        
        
            
            
        

        
       
        

更多的xml配置:

注意:

  • 连接数据库的配置,包括数据名称,数据库用户名密码等配置
  • 指定要生成代码的包名及文件配置,包括实体类po的包名,mapper的包名等
  • 指定数据库中哪些表需要生成文件

③、运行主程序生成代码

public class GeneratorSqlmap {
 
	public void generator() throws Exception {
		List warnings = new ArrayList();
		boolean overwrite = true;
		// 指定配置文件
		File configFile = new File("D:\\workspace\\emptyPro\\mybatis-generator\\config\\generatorConfig.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);
	}
 
	// 执行main方法以生成代码
	public static void main(String[] args) {
		try {
			GeneratorSqlmap generatorSqlmap = new GeneratorSqlmap();
			generatorSqlmap.generator();
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
}

直接运行上面的程序,然后刷新generatorConfig.xml 文件中指定的包,会发现生成了如下文件:

吃水不忘挖井人: