Mybatis plus 자동 코드 생 성기 기반 구현 코드

1.Maven 프로젝트 를 사용 하고 의존 도 를 추가 합 니 다.

<!-- mybatis-plus begin --> 
   <dependency> 
     <groupId>com.baomidou</groupId> 
     <artifactId>mybatis-plus</artifactId> 
     <version>2.2.0</version> 
   </dependency> 
데이터베이스 연결 도 있어 요.

<dependency> 
    <groupId>mysql</groupId> 
    <artifactId>mysql-connector-java</artifactId> 
    <scope>compile</scope> 
</dependency> 
마지막 으로 소스 코드.

import com.baomidou.mybatisplus.generator.AutoGenerator; 
import com.baomidou.mybatisplus.generator.config.DataSourceConfig; 
import com.baomidou.mybatisplus.generator.config.GlobalConfig; 
import com.baomidou.mybatisplus.generator.config.PackageConfig; 
import com.baomidou.mybatisplus.generator.config.StrategyConfig; 
import com.baomidou.mybatisplus.generator.config.rules.DbType; 
import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy; 
import org.junit.jupiter.api.Test; 
/** 
 * mybatis-plus        
 * 
 * @author Terry 
 * @version 1.0 
 * @date 2018-05-16 09:35 
 */ 
public class SimpleMp { 
  @Test 
  public void generateCode() { 
    //     
    String packageName = "com.hciot.hhhh"; 
    //user -> UserService,    true: user -> IUserService 
    boolean serviceNameStartWithI = false; 
    //        
    String[] tableNames = new String[]{"data_air_sensor_co", "order_product", "relation_device_gateway"}; 
    generateByTables(serviceNameStartWithI, packageName, tableNames); 
  } 
  /** 
   *         
   * 
   * @param serviceNameStartWithI    false 
   * @param packageName         
   * @param tableNames         
   * @author Terry 
   */ 
  private void generateByTables(boolean serviceNameStartWithI, String packageName, String... tableNames) { 
    //      
    DataSourceConfig dataSourceConfig = getDataSourceConfig(); 
    //      
    StrategyConfig strategyConfig = getStrategyConfig(tableNames); 
    //       
    GlobalConfig globalConfig = getGlobalConfig(serviceNameStartWithI); 
    //     
    PackageConfig packageConfig = getPackageConfig(packageName); 
    //     
    atuoGenerator(dataSourceConfig, strategyConfig, globalConfig, packageConfig); 
  } 
  /** 
   *    
   * 
   * @param dataSourceConfig       
   * @param strategyConfig       
   * @param config             
   * @param packageConfig       
   * @author Terry 
   */ 
  private void atuoGenerator(DataSourceConfig dataSourceConfig, StrategyConfig strategyConfig, GlobalConfig config, PackageConfig packageConfig) { 
    new AutoGenerator() 
        .setGlobalConfig(config) 
        .setDataSource(dataSourceConfig) 
        .setStrategy(strategyConfig) 
        .setPackageInfo(packageConfig) 
        .execute(); 
  } 
  /** 
   *      
   * 
   * @param packageName       
   * @return PackageConfig      
   * @author Terry 
   */ 
  private PackageConfig getPackageConfig(String packageName) { 
    return new PackageConfig() 
        .setParent(packageName) 
        .setXml("mapper") 
        .setMapper("dao") 
        .setController("controller") 
        .setEntity("entity"); 
  } 
  /** 
   *      
   * 
   * @param serviceNameStartWithI false 
   * @return GlobalConfig 
   * @author Terry 
   */ 
  private GlobalConfig getGlobalConfig(boolean serviceNameStartWithI) { 
    GlobalConfig globalConfig = new GlobalConfig(); 
    globalConfig 
        .setBaseColumnList(true) 
        .setBaseResultMap(true) 
        .setActiveRecord(false) 
        .setAuthor("Terry") 
        //       
        .setOutputDir(getOutputDir("mybatis-plus")) 
        .setFileOverride(true); 
    if (!serviceNameStartWithI) { 
      //  service  
      globalConfig.setServiceName("%sService"); 
    } 
    return globalConfig; 
  } 
  /** 
   *        
   * 
   * @param projectName     
   * @return      
   * @author Terry 
   */ 
  private String getOutputDir(String projectName) { 
    String path = this.getClass().getClassLoader().getResource("").getPath(); 
    int index = path.indexOf(projectName); 
    return path.substring(1, index) + projectName + "/src/main/java/"; 
  } 
  /** 
   *      
   * 
   * @param tableNames    
   * @return StrategyConfig 
   * @author Terry 
   */ 
  private StrategyConfig getStrategyConfig(String... tableNames) { 
    return new StrategyConfig() 
        //        ORACLE    
        .setCapitalMode(true) 
        .setEntityLombokModel(false) 
        //   、   、         (   false) 
        .setDbColumnUnderline(true) 
        //              
        .setNaming(NamingStrategy.underline_to_camel) 
        //        ,        
        .setInclude(tableNames); 
  } 
  /** 
   *       
   * 
   * @return       DataSourceConfig 
   * @author Terry 
   */ 
  private DataSourceConfig getDataSourceConfig() { 
    String dbUrl = "jdbc:mysql://localhost:3306/test"; 
    return new DataSourceConfig().setDbType(DbType.MYSQL) 
        .setUrl(dbUrl) 
        .setUsername("root") 
        .setPassword("root") 
        .setDriverName("com.mysql.jdbc.Driver"); 
  } 
  /** 
   *         
   * 
   * @param packageName    
   * @param tableNames    
   * @author Terry 
   */ 
  @SuppressWarnings("unused") 
  private void generateByTables(String packageName, String... tableNames) { 
    generateByTables(true, packageName, tableNames); 
  } 
} 
총결산
위 에서 말씀 드 린 것 은 마 이 바 티 스 플러스 자동 코드 생 성 기 를 기반 으로 한 실현 코드 입 니 다.여러분 에 게 도움 이 되 기 를 바 랍 니 다.궁금 한 점 이 있 으 시 면 메 시 지 를 남 겨 주세요.소 편 은 제때에 답 해 드 리 겠 습 니 다.여기 서도 저희 사이트 에 대한 여러분 의 지지 에 감 사 드 립 니 다!

좋은 웹페이지 즐겨찾기