screw 的postgresql数据库使用教程

缘由

最近想导出数据库文档,了解到screw,然后跟着文档直接使用,居然报空指针,最后发现是postgresql 在1.0.5版本是有这个问题的,1.0.6修复了。但是还没发布,我又想用,所以拉了原代码看看

拉取原代码

然后打开最外面一层的pom
在这里插入图片描述
看到这里版本号已经是1.0.6-SNAPSHOT,这里不用修改。然后尝试install,报lombok错误
在这里插入图片描述

第一次改动

这里改为对应的我的java版本
在这里插入图片描述
然后把lombok的版本升级,<lombok.version>1.18.24</lombok.version>
然后重新install,报javadoc异常

第二次改动

pom文件往下拉,把这里的注释掉
在这里插入图片描述

使用

重新maven install 一下
然后去自己的项目中依赖这个包,顺带依赖数据库,线程池

	<dependency>
      <groupId>cn.smallbun.screw</groupId>
      <artifactId>screw-core</artifactId>
      <version>1.0.6-SNAPSHOT</version>
    </dependency>
    <dependency>
      <groupId>org.postgresql</groupId>
      <artifactId>postgresql</artifactId>
      <version>42.4.1</version>
    </dependency>
    <dependency>
      <groupId>com.zaxxer</groupId>
      <artifactId>HikariCP</artifactId>
      <version>5.0.1</version>
    </dependency>

随便找个类写个psvm方法

public static void main(String[] args) {
        //数据源
        HikariConfig hikariConfig = new HikariConfig();
        hikariConfig.setDriverClassName("org.postgresql.Driver");
        hikariConfig.setJdbcUrl("jdbc:postgresql://127.0.0.1:5503/test");
        hikariConfig.setUsername("test");
        hikariConfig.setPassword("test");
        //设置可以获取tables remarks信息
        hikariConfig.addDataSourceProperty("useInformationSchema", "true");
        hikariConfig.setMinimumIdle(2);
        hikariConfig.setMaximumPoolSize(5);
        DataSource dataSource = new HikariDataSource(hikariConfig);
        //生成配置
        EngineConfig engineConfig = EngineConfig.builder()
            //生成文件路径 我这里是mac
            .fileOutputDir("/Users/zhuangzibin/Documents")
            //打开目录
            .openOutputDir(true)
            //文件类型
            .fileType(EngineFileType.MD)
            //生成模板实现
            .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.6")
            //描述
            .description("数据库设计文档生成")
            //数据源
            .dataSource(dataSource)
            //生成配置
            .engineConfig(engineConfig)
            //生成配置
            .produceConfig(processConfig)
            .build();
        //执行生成
        new DocumentationExecute(config).execute();
    }

然后直接运行,最后生成成功,结束

### PostgreSQL 数据库常见问题及解决方案 #### 重启PostgreSQL服务 当对配置文件进行了更改之后,为了使这些更改生效,需要重启PostgreSQL服务。对于不同的操作系统环境,可以通过特定的命令来实现这一操作。例如,在基于Linux系统的环境中,可以利用`sudo systemctl restart postgresql`这条指令完成服务的重启工作[^1]。 #### WordPress与PostgreSQL兼容性挑战 在一些场景下,如使用WordPress CMS时,可能会遇到其默认更倾向于MySQL的情况。然而,这并不意味着无法选用其他类型的数据库管理系统,比如PostgreSQL。尽管存在一定的适配难度,通过适当调整仍然可以让两者协同工作。对于那些偏好PostgreSQL而非MySQL的人来说,确保所使用的WordPress版本能够良好支持PostgreSQL是非常重要的[^2]。 #### 密码重置流程中的注意事项 一旦忘记了PostgreSQL超级用户的密码,不必惊慌失措。一种可行的方法涉及临时允许无密码访问权限以便于执行必要的变更。具体来说,就是编辑位于数据目录下的`pg_hba.conf`文件,将认证方式由较为严格的加密形式(如SCRAM-SHA-256)改为信任模式(`trust`);接着借助命令行工具以无需输入旧密码的方式登录到psql控制台并更新账户凭证;最后记得恢复原始的安全策略设置,并再次启动PostgreSQL服务以应用新的改动[^3]。 #### 处理大小写敏感度引发的问题 由于PostgreSQL遵循snake_case命名约定——这意味着所有的表名和列名称都应该是全小写的字母组合而成——所以在编写SQL语句的时候如果不小心采用了大写字母或者混合大小写的格式,就可能导致查询失败。为了避免此类错误的发生,建议始终按照规定的小写标准书写对象名字,并且在必要的情况下使用双引号强制保持原有的区分大小写的字符串表示法[^4]。 ```sql SELECT * FROM "TbJyXm"; -- 正确做法:保留原样不转换为小写 ```
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值