可以导出的信息包括字段名称,数据类型,长度,注释等等信息。
代码如下:
需要的依赖:
<!--数据库设计文档生成插件-->
<dependency>
<groupId>cn.smallbun.screw</groupId>
<artifactId>screw-core</artifactId>
<version>1.0.5</version>
</dependency>
<!--Junit测试-->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
<!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-test -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<version>1.5.9.RELEASE</version>
<!--<scope>test</scope>-->
</dependency>
<dependency>
<groupId>com.zaxxer</groupId>
<artifactId>HikariCP</artifactId>
<version>3.4.5</version>
</dependency>
@RunWith(SpringRunner.class)
@SpringBootTest
public class TestDemo {
@Autowired
ApplicationContext applicationContext;
@Test
public void contextLoads() {
HikariConfig config1 = new HikariConfig();
//数据库连接
config1.setJdbcUrl("jdbc:mysql://****:3306/cntc_management_system?useUnicode=true&characterEncoding=utf8" );
//用户名
config1.setUsername("****");
//密码
config1.setPassword("****");
// config.setDriverClassName("com.ibm.db2.jcc.DB2Driver");
config1.setDriverClassName("com.mysql.jdbc.Driver");
config1.setMaximumPoolSize(10);
config1.setRegisterMbeans(true);
HikariDataSource dataSourceMysql = new HikariDataSource(config1);
//DataSource dataSourceMysql = applicationContext.getBean(DataSource.class);
// 生成文件配置
EngineConfig engineConfig = EngineConfig.builder()
// 生成文件路径,自己本地的地址
.fileOutputDir("C:\\Users\\tru\\Desktop")
// 打开目录
.openOutputDir(false)
// 文件类型
.fileType(EngineFileType.WORD)
// 生成模板实现
//.produceType(EngineTemplateType.freemarker).build();
.produceType(EngineTemplateType.velocity).build();
// 生成文档配置(包含以下自定义版本号、描述等配置连接)
Configuration config = Configuration.builder()
.version("1.0.0")
.description("综合管理")
.dataSource(dataSourceMysql)
.engineConfig(engineConfig)
.produceConfig(getProcessConfig())
.build();
// 执行生成
new DocumentationExecute(config).execute();
}
/**
* 配置想要生成的表+ 配置想要忽略的表
* @return 生成表配置
*/
public static ProcessConfig getProcessConfig(){
// 忽略表后缀
//List<String> designatedTableName = Arrays.asList("sys_user");
// 生成表带前缀
//List<String> designatedTablePrefix = Arrays.asList("kb","s","e","p","t","g","c","d","t","r","i");
List<String> designatedTablePrefix = Arrays.asList("t_");
/*// 忽略表名
List<String> ignoreTableName = Arrays.asList("aa","test_group");
// 忽略表前缀,如忽略a开头的数据库表
List<String> ignorePrefix = Arrays.asList("a","t");
// 忽略表后缀
List<String> ignoreSuffix = Arrays.asList("_test","czb_");*/
return ProcessConfig.builder()
.designatedTablePrefix(designatedTablePrefix).build();
//根据名称指定表生成
// .designatedTableName(designatedTableName)
// //根据表前缀生成
// .designatedTablePrefix(new ArrayList<>())
// //根据表后缀生成
// .designatedTableSuffix(new ArrayList<>()).build();
// //忽略表名
// .ignoreTableName(ignoreTableName)
// //忽略表前缀
// .ignoreTablePrefix(ignorePrefix)
// //忽略表后缀
// .ignoreTableSuffix(ignoreSuffix).build();
}
}