On MyBatis-Plus Learning Code Generator

First, on the Code Generator Introduction

mybatis provided MGB (reverse engineering) to generate the corresponding configuration information of Table Mapper interfaces, and mapping file Mapper Entity database entity of

Similarly, MP provides the corresponding code generator aunt, but is different from the MP code generator MGB XML-based, that is based on the java code.

Entity class may be generated, Mapper interfaces, Mapper mapping file, Service layer, Controller layer.

Two, MP configuration example of the code generator

2.1, pom configuration file

<!-- 以下用于代码生成 -->
      <dependency>
        <groupId>org.apache.velocity</groupId>
        <artifactId>velocity-engine-core</artifactId>
        <version>2.0</version>
      </dependency>
      <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-api</artifactId>
        <version>1.7.7</version>
      </dependency>
      <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-log4j12</artifactId>
        <version>1.7.7</version>
      </dependency>

MP default Velocity templates to generate the code techniques, of course, other techniques may also be in the template, see network configuration examiner

2.2, the following is the code generator configuration code describes

public  class TestGeneratorCode { 
    
    / ** 
     * Code Shengcheng 
     * / 
    @Test 
    public  void TestGen () {
         // 1. Global 
        globalconfig gconfig = new new globalconfig (); 
        gConfig.setActiveRecord ( to true ) // support AR mode 
              .setAuthor ( "Jay ") // set of 
              .setBaseResultMap ( to true ) // about ResultMaps is XML tags in 
              .setBaseColumnList ( to true ) // XML tags 
              .setFileOverride ( to true )// file provided covers 
              .setIdType (IdType.AUTO) // primary key strategy 
              .setOutputDir ( "D: \\ dev Workspace \\ \\ \\ mpPro3 workspace02 the src \\ \\ \\ main Java") // generation path 
              . setMapperName ( "% sMapper")   // % S entity attribute table is automatically populated 
              .setXmlName ( "% sMapper" )     
              .setServiceName ( "% Sservice" ) 
              .setServiceImplName ( "% sServiceImpl" ) 
              .setControllerName ( "% sController" ); 
              
        // 2. data source configuration 
        DataSourceConfig dsConfig = new new DataSourceConfig ();
        dsConfig.setDbType (DbType.MYSQL)
                .setDriverName ( "com.mysql.jdbc.Driver" ) 
                .setUrl ( "jdbc: MySQL: // localhost: 3306 /, MPDb" ) 
                .setUsername ( "root" ) 
                .setPassword ( "root" ); 
        
        // 3. Strategy Configuring 
        StrategyConfig sconfig = new new StrategyConfig (); 
        sConfig.setDbColumnUnderline ( to true ) // table names, field names, whether to use an underscore naming 
               .setCapitalMode ( to true ) // open global capital named 
               .setNaming (NamingStrategy.underline_to_camel) // database mapped to entity: underline turn hump 
               .setTablePrefix ( "tbl_" ) 
               .setInclude ( "tbl_employee"); // specified table generated 
                
        // 4. package names policy configuration 
        PackageConfig pConfig = new new PackageConfig (); 
        pConfig.setParent ( " cn.hjj.mp " ) 
               .setEntity ( " the Entity " ) 
               .setMapper ( " Mapper " ) 
               .setService ( " Service " ) 
               .setServiceImpl ( " service.impl " ) 
               .setController ( " the Controller ")
               .setXml("mapper"); 
        
        //5.整合配置 
        car generator auto generator = new car generator (); 
        autoGenerator.setGlobalConfig (gconfig) 
                     .setDataSource (dsconfig) 
                     .setStrategy (sconfig) 
                     .setPackageInfo (pConfig); 
        
        autoGenerator.execute ();        
    } 
}

After the code is executed, the project directory structure is as follows

Also to be explained, the resulting generated EmployeeServiceImpl ServiceImpl class inheritance,

Wherein the injection EmployeeMapper, and provides many default CRUD methods

/**
 * <p>
* EmployeeServiceImpl.java * 服务实现类 * </p> * *
@author Jay * @since 2018-10-04 */ @Service public class EmployeeServiceImpl extends ServiceImpl<EmployeeMapper, Employee> implements EmployeeService { }

Guess you like

Origin www.cnblogs.com/jayhou/p/9824314.html