mybatis代码生成器

 mybatis代码生成器坐标


        
            com.baomidou
            mybatis-plus-generator
            3.4.1
        
        
        
            org.apache.velocity
            velocity-engine-core
            2.3
        

创建CodeGeneration测试类

package com.example;

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.NamingStrategy;
import org.junit.jupiter.api.Test;
import org.springframework.boot.test.context.SpringBootTest;

import java.time.LocalDateTime;

@SpringBootTest
public class CodeGeneration {

    final String DRIVERNAME = "com.mysql.cj.jdbc.Driver";//驱动
    final String MYSQLSERVER = "jdbc:mysql://localhost:3306/";//MySQL服务地址
    final String DATABASE = "database";//数据库名
    final String USERNAME = "root";//账号
    final String PASSWORD = "123456";//密码
    final String PARENT = "com.example";//包路径
    final String AUTHOR = LocalDateTime.now() + "   作者";//设置作者名称
    final String[] TABLE = {"table1","table2"};//需要生成的表名数组
    final String URL = System.getProperty("user.dir");//生成的路径,这里表示当前模块

    @Test
    void test() {
        //创建代码生成器
        AutoGenerator autoGenerator = new AutoGenerator();
        // 数据源配置
        DataSourceConfig dsc =new DataSourceConfig();
        dsc.setDriverName(DRIVERNAME);
        dsc.setUrl(MYSQLSERVER + DATABASE);
        dsc.setUsername(USERNAME);
        dsc.setPassword(PASSWORD);
        //给代码生成器添加数据库连接配置
        autoGenerator.setDataSource(dsc);

        //设置全局配置
        GlobalConfig gc = new GlobalConfig();
        gc.setOutputDir(URL+"/src/main/java");
        gc.setOpen(false);//设置是否打开代码
        gc.setFileOverride(true);//设置是否覆盖原始文件
        gc.setMapperName("%sMapper");//设置接口名称,%s为占位符,指代模块名称
        gc.setServiceName("%sService");	//去掉Service接口的首字母I
        gc.setAuthor(AUTHOR);//设置作者名称
        autoGenerator.setGlobalConfig(gc);//添加全局配置
        // 包配置
        PackageConfig pc = new PackageConfig();
        pc.setParent(PARENT);//设置生成的包名,与代码所在位置不冲突,俩者形成完整的路径
        pc.setController("controller");//设置控制器包名
        pc.setEntity("entity");//设置实体类包名
        pc.setService("service");//设置服务器包名
        pc.setMapper("mapper");//设置数据成包名
        autoGenerator.setPackageInfo(pc);//添加包的相关配置

        // 策略配置
        StrategyConfig strategy = new StrategyConfig();
        strategy.setInclude(TABLE);//设置当前参与生成的表名,参数为可变参数
        strategy.setNaming(NamingStrategy.underline_to_camel);//数据库表映射到实体的命名策略
        strategy.setColumnNaming(NamingStrategy.underline_to_camel);//数据库表字段映射到实体的命名策略
        // strategy.setTablePrefix("tbl_");//设置数据库表的前缀名称,模块名=数据库表名-前缀名; 列如User=tbl_User-tbl
        // strategy.setVersionFieldName("version");//设置乐观锁字段名
        // strategy.setLogicDeleteFieldName("deleted");//设置逻辑删除字段名
        strategy.setEntityLombokModel(true);//设置是否使用lombok
        strategy.setRestControllerStyle(true);//设置是否启用Rest风格开发
        strategy.setControllerMappingHyphenStyle(true); //url中驼峰转连字符
        autoGenerator.setStrategy(strategy);//添加生成策略

        autoGenerator.execute();//运行代码生成器
    }
}

最后在mapper中添加@Mapper注解即可

你可能感兴趣的:(mybatis)