mysql-pius代码生成网站_基于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;

/**

* 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 自动代码生成器的实现代码,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值