数据库数据类型的修改-delphi调用dll类型库
文本
大家好。 我是 GitHub 源。 今天给大家推荐一个系统项目。 元哥第一次用的时候有点受宠若惊,爱不释手。 他一定要推荐给大家。
上次谁要的系统工程,猿哥给你找的。
这是迄今为止我见过的最好的系统项目。 功能齐全,代码结构清晰。 推荐.项目介绍
最近猿哥在逛网站的时候发现一个不错的开源项目,这个项目目前收获了 3.4K Star,猿哥觉得不错,值得拿出来和大家分享下。 本项目系统是一款简洁好用的数据库表结构文档工具,支持MySQL/MariaDB/SqlServer/Oracle/PostgreSQL/TIDB/CacheDB 数据库。
在企业级开发中,我们经常会花时间编写数据库表结构文档。 由于我们在几家公司工作过,数据库表结构文档的现状:要么没有,要么有,但是都是手写的数据库数据类型的修改,后期运维开发,需要在文档里面手动维护,就是很麻烦。 如果忘记维护一次,会给以后的工作带来很多麻烦,给自己和后代造成很多坑,所以不得不自己写一个插件工具。 想法,但是由于前期在程序设计方面没有太多造诣,能力低下,所以没能很好的实现自己的想法。 随着工作经验的增加和知识的不断积累,终于在2020年3月中旬开始写了,4月初完成了第一版。 几乎在开源的时候就想改进一下数据库数据类型的修改,但是由于工作忙,业余时间不够,所以没有改进。 6月,由于工作原因,经常设计和更改数据库,经常使用自己写的这个插件,节省了很多时间,解决了很多问题。 在仅有的且不多的业余时间里,我准备开源。 2020年6月22日开源。 欢迎大家使用、建议和贡献。
至于名字,实在是太难想了。 幸运的是,我聪明的小脑袋灵光一闪。 如何突出它的小而重要? 我从小就领悟到雷锋的螺丝精神,从雷锋日记中读到:虽然是一个小螺丝,也是一个微小的小齿轮,但如果少了,整台机器就无法运转。 小螺丝没拧紧,一个小齿轮轻微损坏,机器运转也会出故障……感觉自己写的这个工具很有内涵。 虽然小,但是在开发中没有它是不行的。 所以它被命名为螺丝钉(screw)。
功能数据库支持文档生成支持文档截图
正常使用方式
cn.smallbun.screw
screw-core
${lastVersion}
/**
* 文档生成
*/
void documentGeneration() {
//数据源
HikariConfig hikariConfig = new HikariConfig();
hikariConfig.setDriverClassName("com.mysql.cj.jdbc.Driver");
hikariConfig.setJdbcUrl("jdbc:mysql://127.0.0.1:3306/database");
hikariConfig.setUsername("root");
hikariConfig.setPassword("password");
//设置可以获取tables remarks信息
hikariConfig.addDataSourceProperty("useInformationSchema", "true");
hikariConfig.setMinimumIdle(2);
hikariConfig.setMaximumPoolSize(5);
DataSource dataSource = new HikariDataSource(hikariConfig);
//生成配置
EngineConfig engineConfig = EngineConfig.builder()
//生成文件路径
.fileOutputDir(fileOutputDir)
//打开目录
.openOutputDir(true)
//文件类型
.fileType(EngineFileType.HTML)
//生成模板实现
.produceType(EngineTemplateType.freemarker)
//自定义文件名称
.fileName("自定义文件名称").build();
//忽略表
ArrayList<String> ignoreTableName = new ArrayList<>();
ignoreTableName.add("test_user");
ignoreTableName.add("test_group");
//忽略表前缀
ArrayList<String> ignorePrefix = new ArrayList<>();
ignorePrefix.add("test_");
//忽略表后缀
ArrayList<String> ignoreSuffix = new ArrayList<>();
ignoreSuffix.add("_test");
ProcessConfig processConfig = ProcessConfig.builder()
//指定生成逻辑、当存在指定表、指定表前缀、指定表后缀时,将生成指定表,其余表不生成、并跳过忽略表配置
//根据名称指定表生成
.designatedTableName(new ArrayList<>())
//根据表前缀生成
.designatedTablePrefix(new ArrayList<>())
//根据表后缀生成
.designatedTableSuffix(new ArrayList<>())
//忽略表名
.ignoreTableName(ignoreTableName)
//忽略表前缀
.ignoreTablePrefix(ignorePrefix)
//忽略表后缀
.ignoreTableSuffix(ignoreSuffix).build();
//配置
Configuration config = Configuration.builder()
//版本
.version("1.0.0")
//描述
.description("数据库设计文档生成")
//数据源
.dataSource(dataSource)
//生成配置
.engineConfig(engineConfig)
//生成配置
.produceConfig(processConfig)
.build();
//执行生成
new DocumentationExecute(config).execute();
}Maven插件
cn.smallbun.screw
screw-maven-plugin
${lastVersion}
com.zaxxer
HikariCP
3.4.5
mysql
mysql-connector-java
8.0.20
root
password
com.mysql.cj.jdbc.Driver
jdbc:mysql://127.0.0.1:3306/xxxx
HTML
false
freemarker
测试文档名称
数据库文档生成
${project.version}
数据库文档
compile
run
扩展模块的pojo生成功能介绍
pojo生成功能基于screw扩展的扩展模块,目前处于前期开发状态。 在日常开发中,需求分析和建模后,往往先在数据库中建表,再进行代码开发。 那么pojo生成功能可以帮你在这个阶段省去一些重复劳动。 使用pojo生成函数,直接根据数据库生成对应的java pojo对象。 这样,后续的修改和开发就会很方便。
数据库支持使用
cn.smallbun.screw
screw-extension
${lastVersion}
/**
* pojo生成
*/
void pojoGeneration() {
//数据源
HikariConfig hikariConfig = new HikariConfig();
hikariConfig.setDriverClassName("com.mysql.cj.jdbc.Driver");
hikariConfig.setJdbcUrl("jdbc:mysql://127.0.0.1:3306/screw");
hikariConfig.setUsername("screw");
hikariConfig.setPassword("screw");
//设置可以获取tables remarks信息
hikariConfig.addDataSourceProperty("useInformationSchema", "true");
hikariConfig.setMinimumIdle(2);
hikariConfig.setMaximumPoolSize(5);
DataSource dataSource = new HikariDataSource(hikariConfig);
ProcessConfig processConfig = ProcessConfig.builder()
//指定生成逻辑、当存在指定表、指定表前缀、指定表后缀时,将生成指定表,其余表不生成、并跳过忽略表配置
//根据名称指定表生成
.designatedTableName(new ArrayList<>())
//根据表前缀生成
.designatedTablePrefix(new ArrayList<>())
//根据表后缀生成
.designatedTableSuffix(new ArrayList<>()).build();
//设置生成pojo相关配置
PojoConfiguration config = new PojoConfiguration();
//设置文件存放路径
config.setPath("/cn/smallbun/screw/");
//设置包名
config.setPackageName("cn.smallbun.screw");
//设置是否使用lombok
config.setUseLombok(false);
//设置数据源
config.setDataSource(dataSource);
//设置命名策略
config.setNameStrategy(new HumpNameStrategy());
//设置表过滤逻辑
config.setProcessConfig(processConfig);
//执行生成
new PojoExecute(config).execute();
}最后,想学习这个项目的可以查看项目地址:
如何获取项目源码?
源码获取
扫码下方二维码,后台回复【数据库工具】即可获取所有系统
你点的每一个赞,我都认真对待