我正在尝试建立我的第一个jOOQ项目。我有一个模式设置,我需要从它做代码生成。
显然,代码生成器需要访问数据库以便查询它。
不幸的是,数据库用户名和密码似乎需要在配置文件中硬编码。
什么? !
我没有检查我的数据库密码,任何数据库密码,到git!
首先,因为这个应用程序的源代码在GitHub上是公开的。
第二,因为我是专业人员,我不会因为任何事情而偏离专业的软件开发方法。
要做到这一点,唯一的方法真的是把你的DB密码签入git,从git中省略整个配置文件,或者处理本地更改,如果它们被提交,可能会带来灾难吗?很高兴看到您不会盲目地在git中检入您的用户名和密码。但是我不确定为什么你认为jOOQ"希望你">那样做。在jOOQ或jOOQ手册中没有任何建议您应该这样做。
您可能指的是手册中的代码生成配置部分?例如
<jdbc>
<driver>oracle.jdbc.OracleDriver</driver>
<url>jdbc:oracle:thin:@[your jdbc connection parameters]</url>
<user>[your database user]</user>
<password>[your database password]</password>
</jdbc>
但是这只是普通的Maven配置XML,因此您可以轻松地使用${db.user}
和{db.password}
系统属性。或者环境变量。这些都是Maven的特性,而不是jOOQ的。Gradle有类似的功能。
除此之外,jOOQ支持将这些值作为系统属性传递,独立于Maven/Gradle:
-Djooq.codegen.jdbc.user
(string):用于基于JDBC连接的代码生成的JDBC用户名-Djooq.codegen.jdbc.password
(string):用于基于JDBC连接的代码生成的JDBC密码
您还可以通过编程方式配置代码生成器,在这种情况下,您可以完全自由地选择将用户名/密码传递给您想要的代码生成设置的任何机制。
另外,请记住,生成代码的推荐方法之一是使用testcontainers,在用户名和密码不相关的情况下,使这个设置更简单。
如您所见,有大量的选项,没有一个表明jOOQ希望您做坏事。