(2)自动代码生成插件

mybatis的实体类和mapper的文件可以通过MyBatis Generator 的生成器来自动生成,主要是根据配置文件,根据数据库的对应的表,自动生成实体类和对应的mapper的文件

一般来说有两种方式:

  • 一种使用java的配置方式
  • 一种使用maven插件的方式

可以参考官方的文档 ,文档有详细的描述:
http://www.mybatis.org/generator/running/runningWithMaven.html

这里主要介绍两种的实现方式,maven插件的方式更加方便(推荐使用),这种主要有备份文件产生,比较实用

具体实现代码:
参考github的项目mybatis下的mybatis-generator的工程

地址为: https://github.com/sunkang123/mybatis

1.maven插件方式

  • 配置文件如下




    
    
        
            
            
        
        
        
        
        

        
            
        

        
        
        
            
            
        

        
        
            
        


        
            
        

        
        
            
            
            
            
        
  • pom的配置如下:
    //如果配置不指定,这里需要加上数据库驱动包的依赖
   
      org.mybatis.generator
      mybatis-generator-core
      1.3.5
    

  
    
    
      
        org.mybatis.generator
        mybatis-generator-maven-plugin
        1.3.3
        
          
            Generate MyBatis Artifacts
            
              generate
            
          
        
        
          ${project.basedir}/src/main/resources/generatorConfig.xml
        
        
          
            mysql
            mysql-connector-java
            5.1.46
          
        
      
    
  
  • 运行插件
mvn mybatis-generator:generate

2.java的使用方式

配置文件还是跟上面的一样

package com.mybatis.generator;

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.util.ArrayList;
import java.util.List;

/**
 * @Project: mybatis
 * @description:   java 版本的方式 ,需要些java代码来启动  (建议使用插件来管理)
 * @author: sunkang
 * @create: 2018-10-09 21:23
 * @ModificationHistory who      when       What
 **/
public class GeneratorSqlMap {

     public void generator() throws Exception{
        List warnings = new ArrayList();
        boolean overwrite = true;
        String path  = GeneratorSqlMap.class.getClassLoader().getResource("").getPath().toString();
         System.out.println(path);
        File configFile = new File(path,"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);
    }

   public static void main(String[] args) throws Exception {
        try {
            GeneratorSqlMap generatorSqlmap = new GeneratorSqlMap();
            generatorSqlmap.generator();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

你可能感兴趣的:((2)自动代码生成插件)