首先在pom.xml中导入坐标
<dependency> //这个就是代码生成器坐标
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-generator</artifactId>
<version>3.4.1</version>
</dependency>
<dependency> //这个是Velocity引擎的坐标, 而MyBatis-Plus 支持 Velocity这个默认的模板引擎
<groupId>org.apache.velocity</groupId>
<artifactId>velocity-engine-core</artifactId>
<version>2.3</version>
</dependency>
然后在Generator.java中
public class Generator{ //Generator表示生成器
public static void main(String[] args){
AutoGenerator autoGenerator=new AutoGenerator(); //这个是创建代码生成器第一:数据源配置
AutoGenerator autoGenerator=new AutoGenerator(); //这个是创建代码生成器 DataSourceConfig dataSourceConfig=new DataSourceConfig(); //这个是进行数据源配置 dataSourceConfig.setDriverName("com.mysql.jdbc.Driver"); dataSourceConfig.setUrl("jdbc:mysql://localhost:3306/sky_take_out?serverTimezone=UTC"); dataSourceConfig.setUsername("root"); dataSourceConfig.setPassword("123456"); autoGenerator.setDataSource(dataSourceConfig); //这个是在代码生成器中配置数据源,从而根据数据源生成代码 // 第二:全局配置 GlobalConfig globalConfig=new GlobalConfig(); //这个就是设置全局配置对象,你按住ctrl进入到GlobalConfig中,可以看到它默认的全局配置生成路径是"D://" globalConfig.setOutputDir(System.getProperty("user.dir")+"/springboot1/src/main/java"); //这个就是设置代码生成器的生成路径,这个就是在当前项目中的父工程目录下的src目录下的main目录下的java目录 //其中System.getProperty("user.dir")表示当前运行System.getProperty("user.dir")所在的项目的父工程目录, // 比如当前项目为springboot,它所在的路径为D://aa/springboot,所以System.getProperty("user.dir")就表示D://aa/springboot globalConfig.setOpen(false); //这个表示生成之后,要不要将生成的代码所在的文件夹自动打开弹出,false表示不弹出 globalConfig.setAuthor("aaaaa"); //这个表示设置生成的作者 globalConfig.setFileOverride(true); //这个表示是否要覆盖原始生成的文件,true表示覆盖 // globalConfig.setSwagger2(true); //Controller层使用Swagger注解 globalConfig.setMapperName("%sMapper"); //这个表示设置数据层接口名,%s是占位符,表示数据表的名字加上DAO, 这个主要是为映射接口起名字为tb_userDao.java, tb_user表示数据表名字, //不过我喜欢用默认的映射接口的名字,默认名字为tb_userMapper.java, 所以一般不使用这个设置,就是不用setmapperName()这个方法进行设置 globalConfig.setIdType(IdType.AUTO); //这个表示设置Id生成策略 autoGenerator.setGlobalConfig(globalConfig); //这个是在代码生成器中设置全局配置 // 第三:包名修改 PackageConfig packageConfig=new PackageConfig(); //这个就是对所生成的包进行配置, 它默认生成的是com.baomidou包, packageConfig.setParent("com.example"); //设置生成的包的名字为bb.aa, 通过改变包的名字,可以将生成的包放在指定的包下, // 默认的父包是"com.baomidou", 它会自动放在上面设置的globalConfig.setOutputDir路径下,此时也就变成了/springboot1/src/main/java/com/example packageConfig.setEntity("Pojo"); //这个是设置实体类的包的名字为Pojo, 默认名字为"entity" // 它有四个方法分别可以修改四个包的包名,比如:packageConfig.setMapper("aa"),修改的就是mapper包的包名 autoGenerator.setPackageInfo(packageConfig); //这个就是在代码生成器中设置包配置 // 第四:策略配置 StrategyConfig strategyConfig=new StrategyConfig(); //这个是策略配置对象,strategy表示策略 // strategyConfig.setTablePrefix("tb_"); //这个表示去除数据表的前缀,这样就相当于将数据表的名字中相同的部分给去除了, //比如:数据表的名字为tb_user, 那么生成的各个包中的文件名字就都为tb_user.java之类的, 但是现在去除前缀之后,生成的文件名就是user.java之类的 strategyConfig.setRestControllerStyle(true); //这个表示是否启用REST风格,true表示启用, 这样在controller包中的注解就由@Controller变成了@RestController strategyConfig.setEntityLombokModel(true); //这个表示实体类中是否启用lombok, true表示启用, 这样在生成的代码中就能使用注解来表示get和set方法了 // strategyConfig.setVersionFieldName("version"); //这个就表示设置乐观锁字段为version, 就相当于会自动在version字段上面加上@Version注解 // strategyConfig.setLogicDeleteFieldName("deleted"); //这个表示设置逻辑删除字段为deleted,就相当于在deleted字段上面加上 strategyConfig.setInclude("category","dish"); //这个表示只对指定的表进行生成,不会将将数据库中的所有的表都进行生成, 这里就是只生成tb_user和tb_book这两张表 autoGenerator.setStrategy(strategyConfig); //这个就是在生成器中设置策略配置 autoGenerator.execute(); //这个就是运行代码生成器 } //在没有设置全局配置就这个代码后,会自动弹出D盘,在D盘中会自动生成一个com文件夹, 也就是说它是默认放在D盘的}