欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

基于Mybatis plus 自动代码生成器的实现代码

程序员文章站 2023-12-17 23:42:16
1.使用的是maven项目,添加依赖 ...

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); 
  } 
} 

总结

以上所述是小编给大家介绍的基于mybatis plus 自动代码生成器的实现代码,希望对大家有所帮助

上一篇:

下一篇: