使用mybatisplus的逆向工程自动生成数据库中表对应的实体类、mapper、service、serviceImpl、controller等文件
详细流程如下:
1、引入依赖
<dependency><groupId>org.mybatis.spring.boot</groupId><artifactId>mybatis-spring-boot-starter</artifactId><version>3.0.4</version></dependency><dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>3.4.3.1</version></dependency><dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-generator</artifactId><version>3.3.2</version></dependency><dependency><groupId>org.apache.velocity</groupId><artifactId>velocity-engine-core</artifactId><version>2.0</version></dependency>
2、编写自动生成器配置并执行
就是项目中随便写个类,里面定义个main方法,执行下面的代码即可
public class Generator {public static void main(String[] args) {AutoGenerator autoGenerator = new AutoGenerator();// 数据源配置DataSourceConfig dataSourceConfig = new DataSourceConfig();dataSourceConfig.setDbType(DbType.MYSQL);dataSourceConfig.setDriverName("com.mysql.cj.jdbc.Driver");dataSourceConfig.setUsername("root");dataSourceConfig.setPassword("123456");dataSourceConfig.setUrl("jdbc:mysql://localhost:3306/chong?useUnicode=true&characterEncoding=UTF-8");autoGenerator.setDataSource(dataSourceConfig);// 全局配置GlobalConfig globalConfig = new GlobalConfig();globalConfig.setOpen(false); // 是否打开生成后的文件globalConfig.setOutputDir(System.getProperty("user.dir")+"/src/main/java");globalConfig.setAuthor("hekai"); // 注释上面编写的作者globalConfig.setServiceName("%sService");autoGenerator.setGlobalConfig(globalConfig);// 包配置PackageConfig packageConfig = new PackageConfig();packageConfig.setParent("com.shuhe");packageConfig.setEntity("entity");packageConfig.setMapper("mapper");packageConfig.setController("controller");packageConfig.setService("service");packageConfig.setServiceImpl("service.impl");autoGenerator.setPackageInfo(packageConfig);// 策略配置StrategyConfig strategyConfig = new StrategyConfig();strategyConfig.setEntityLombokModel(true); // 生成的实体上都会加上@Data注解strategyConfig.setNaming(NamingStrategy.underline_to_camel); // 实体类的命名规则为下划线转驼峰strategyConfig.setColumnNaming(NamingStrategy.underline_to_camel); // 实体类的属性名的命名规则为下划线转驼峰strategyConfig.setInclude("fa_admin","fa_admin_log");// 要根据哪些表生成对应的实体类等文件strategyConfig.setTablePrefix("fa_"); // 若有则去掉表中前缀,如fa_user表生成User.java类autoGenerator.setStrategy(strategyConfig);autoGenerator.execute();}
}
执行完毕后表对应的文件就自动生成了。
如果entity、mapper、controller等目录已经创建好了,则生成的文件会自动添加在对应的目录下,没有创建目录则会自动生成对应的目录,完全不用担心。