栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

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

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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

1.使用的是maven项目,添加依赖

 
    
     com.baomidou 
     mybatis-plus 
     2.2.0 
    

还有数据库的连接

 
    mysql 
    mysql-connector-java 
    compile 
 

最后是源码

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; 
 
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); 
  } 
   
  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); 
  } 
   
  private void atuoGenerator(DataSourceConfig dataSourceConfig, StrategyConfig strategyConfig, GlobalConfig config, PackageConfig packageConfig) { 
    new AutoGenerator() 
 .setGlobalConfig(config) 
 .setDataSource(dataSourceConfig) 
 .setStrategy(strategyConfig) 
 .setPackageInfo(packageConfig) 
 .execute(); 
  } 
   
  private PackageConfig getPackageConfig(String packageName) { 
    return new PackageConfig() 
 .setParent(packageName) 
 .setXml("mapper") 
 .setMapper("dao") 
 .setController("controller") 
 .setEntity("entity"); 
  } 
   
  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; 
  } 
   
  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/"; 
  } 
   
  private StrategyConfig getStrategyConfig(String... tableNames) { 
    return new StrategyConfig() 
 // 全局大写命名 ORACLE 注意 
 .setCapitalMode(true) 
 .setEntityLombokModel(false) 
 // 表名、字段名、是否使用下划线命名(默认 false) 
 .setDbColumnUnderline(true) 
 //从数据库表到文件的命名策略 
 .setNaming(NamingStrategy.underline_to_camel) 
 //需要生成的的表名,多个表名传数组 
 .setInclude(tableNames); 
  } 
   
  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"); 
  } 
   
  @SuppressWarnings("unused") 
  private void generateByTables(String packageName, String... tableNames) { 
    generateByTables(true, packageName, tableNames); 
  } 
} 

总结

以上所述是小编给大家介绍的基于Mybatis plus 自动代码生成器的实现代码,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对考高分网网站的支持!

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/140918.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号