Bootstrap

mybatis-plus自动生成工具

学了一下mybatis-plus,整体上比mybatis简化很多,也方便很多,懒人福利,哈哈,记录一下代码生成的代码,以后就用它了!
方式一:通过mybatis-plus-generator
引入依赖:

<dependency>
 <groupId>com.baomidou</groupId>
 <artifactId>mybatis-plusgenerator</artifactId>
 <version>3.3.1.tmp</version>
</dependency> <dependency>
 <groupId>org.apache.velocity</groupId>
 <artifactId>velocity</artifactId>
 <version>1.7</version>
</dependency>

然后创建main方法配置相应参数直接运行就出来了,其中的一些参数可以按自己需求更改

public class AutoGeneratorService{
 public static void main(String[] args) {
 //创建generator对象
 AutoGenerator autoGenerator = newAutoGenerator();
 //数据源
 DataSourceConfig dataSourceConfig =new DataSourceConfig(); 
 dataSourceConfig.setDbType(DbType.MYSQL); 
 dataSourceConfig.setUrl("jdbc:mysql://ip:3306/db?useUnicode=true&characterEncoding=UTF-8");
 dataSourceConfig.setUsername("root");
 dataSourceConfig.setPassword("root");
 dataSourceConfig.setDriverName("com.mysql.cj.jdbc.Driver");
 autoGenerator.setDataSource(dataSourceConfig);
 //全局配置
 GlobalConfig globalConfig = newGlobalConfig();
 //输出到那个目录
 globalConfig.setOutputDir(System.getProperty("user.dir")+"/src/main/java");
 //生成之后是否打开文件夹
 globalConfig.setOpen(false);
 globalConfig.setAuthor("zheyi");
 //生成service会自动service前面会自动带一个‘I’,不需要的话可以这样设置
 globalConfig.setServiceName("%sService");
 autoGenerator.setGlobalConfig(globalConfig);
 //包信息
 PackageConfig packageConfig = newPackageConfig();
 packageConfig.setParent("com.zheyi.mybatisplus");
 packageConfig.setModuleName("generator");
 packageConfig.setController("controller");
 packageConfig.setService("service");
 packageConfig.setServiceImpl("service.impl");
 packageConfig.setMapper("mapper");
 packageConfig.setEntity("entity");
 autoGenerator.setPackageInfo(packageConfig);
 //配置策略
 StrategyConfig strategyConfig = newStrategyConfig();
 strategyConfig.setEntityLombokModel(true); 
 //设置驼峰命名,可以自动将数据库中的下划线方式转换成驼峰的形式,如user_name--->userName
 strategyConfig.setNaming(NamingStrategy.underline_to_camel);
 strategyConfig.setColumnNaming(NamingStrategy.underline_to_camel);
 autoGenerator.setStrategy(strategyConfig);
 
 autoGenerator.execute();
 }
}

方式二:通过mybatis-plus-generator-ui
引入依赖:

        <dependency>
            <groupId>com.github.davidfantasy</groupId>
            <artifactId>mybatis-plus-generator-ui</artifactId>
            <version>1.4.5</version>
        </dependency>

配置数据库转换

public class MySqlTypeConvertEx extends MySqlTypeConvert {
    @Override
    public IColumnType processTypeConvert(GlobalConfig config, String fieldType) {
        return TypeConvertsEx.use(fieldType)
                .test(TypeConvertsEx.containsAny("char", "text", "json", "enum").then(STRING))
                .test(TypeConvertsEx.contains("bigint").then(LONG))
                .test(TypeConvertsEx.containsAny("tinyint", "bit").then(BYTE)).test(TypeConvertsEx.containsAny("tinyint(1)", "bit").then(BYTE))
                .test(TypeConvertsEx.contains("int").then(INTEGER))
                .test(TypeConvertsEx.contains("decimal").then(BIG_DECIMAL))
                .test(TypeConvertsEx.contains("clob").then(CLOB))
                .test(TypeConvertsEx.contains("blob").then(BLOB))
                .test(TypeConvertsEx.contains("binary").then(BYTE_ARRAY))
                .test(TypeConvertsEx.contains("float").then(FLOAT))
                .test(TypeConvertsEx.contains("double").then(DOUBLE))
                .test(TypeConvertsEx.containsAny("date", "time", "year").then(t -> toDateType(config, t)))
                .or(STRING);
    }

然后创建main方法配置参数直接执行:

public class GeberatorUIServer {
    public static void main(String[] args) {
        GeneratorConfig config = GeneratorConfig.builder().jdbcUrl("jdbc:mysql://127.0.0.1:3306/db")
                .userName("root")
                .password("root")
                .driverClassName("com.mysql.cj.jdbc.Driver")
                //数据库schema,POSTGRE_SQL,ORACLE,DB2类型的数据库需要指定
                .schemaName("myBusiness")
                //如果需要修改各类生成文件的默认命名规则,可自定义一个NameConverter实例,覆盖相应的名称转换方法:
                .nameConverter(new NameConverter() {
                    /**
                     * 自定义Service类文件的名称规则
                     */
                    @Override
                    public String serviceNameConvert(String tableName) {
                        return this.entityNameConvert(tableName) + "Service";
                    }
                    /**
                     * 自定义Controller类文件的名称规则
                     */
                    @Override
                    public String controllerNameConvert(String tableName) {
                        return this.entityNameConvert(tableName) + "Controller";
                    }
                }).typeConvert(new MySqlTypeConvertEx())
                .basePackage("com.zheyi.admin.business")
                .port(8888)
                .build();
        MybatisPlusToolsApplication.run(config);
    }

;