当前位置: 首页 > 知识库问答 >
问题:

正确的Vertx数据库礼仪

路金鑫
2023-03-14

我对Vertx相当陌生,正在尝试寻找一些实际的数据库使用示例。

我有一个创建共享数据库对象的Verticle(和许多处理路由的类),但我想在主类之外使用共享数据库,显然我可以在其他类构造函数中传递数据库对象,但我相信Vertx有更好的方法来实现这一点。

public void start() {
    ...
    this.postgreSQLClient = PostgreSQLClient.createShared(vertx, sqlClientConfig);
    ...
}

有没有人有任何Java Vertx示例,其中包含真实的数据库实现?

提前谢谢你。

共有2个答案

梁盛
2023-03-14

只需指定一个池名:

如果使用同一个顶点创建不同的客户端。并指定相同的池名,它们将共享相同的数据源。

因此,更新您的示例:

public void start() {
  this.postgreSQLClient = PostgreSQLClient.createShared(vertx, sqlClientConfig, "my-shared-client");
}

请注意,执行此操作时,将使用第一次调用中提供的配置。随后的调用只会返回现有的客户端。

漆雕皓轩
2023-03-14

使用依赖注入。我用过Guice,下面是一个例子:

主要的JAVA

//within main function where you have object of vertx
Guice.createInjector(new AppInjector(vertx));

AppInjector。JAVA

//Create an Injector file and bind your injections
PostgreSQLClient postgreSQLClient = PostgreSQLClient.createShared(vertx, sqlClientConfig, "my-shared-client");
bind(PostgreSQLClient.class).annotatedWith(Names.named("DBClient")).toInstance(postgreSQLClient);

用户服务。JAVA

public class UserService {

    @Inject
    @Named("DBClient")
    private PostgreSQLClient client;

}

你可以在这里找到源代码

 类似资料:
  • 问题内容: 如您所见,我有我的数据库连接文件和另一个“受保护的”文件,我的凭据在其中,并且此文件包含在.gitignore中。我导入它并到达数据。很基本。因此,我的问题是: 这是正确的方法吗? 如果没有,我该怎么办?另外:如何为帐户和连接增加额外的安全性? 假设我有一个私人收藏,没人可以看到,我该如何特别保护这个收藏?我的意思是说,用密码或两步验证。 当前代码: 问题答案: …我有我的数据库连接文

  • 我有一个由Ormlite实现的现有数据库。我正在尝试用Ormlite生成的现有sqlite文件迁移到Room。 当我们在ormlite中为表列使用long数据类型时,它在SQLite中被转换为BIGINT。因此,创建的模式包含BIGINT类型的列,而BIGINT类型对于Room是未知的。当我尝试用Room升级应用程序时,我遇到了迁移异常。 java.lang.IllegalStateExcepti

  • 我想使用以下格式的多维数组:value[n][],其中n是问题编号。使用此新设置,您将得到以下输入字段: 请注意,选定的值编码在value属性中。name属性只包含值所属的问题。 因此,上述输入说明的是: 我想在下面的“问题”和“答案”数据库表中插入这些详细信息: 问题表: 答案表: 现在,我已经尝试编写下面的mysqli/php代码来将这些值插入数据库,但是我收到了错误,并且在想要实现我想要实现

  • 问题内容: 我正在使用以下SQL字符串将此数据插入到我的MySQL数据库中: 并且我收到此错误消息: 那么输入MySQL数据库的正确格式/值是什么? 问题答案: 问: MySQL语句中文字的正确格式/值是什么? 答: 在MySQL中,文字的标准格式为: 时间部分为24小时制(即,小时数字以00到23之间的值形式提供)。 MySQL提供了一个内置函数,可以将各种格式的字符串转换为或数据类型。 因此,

  • 我使用的是vertx jdbc客户端(http://vertx.io/docs/vertx-jdbc-client/java/)我的数据库连接。这适用于除BigDecimal之外的所有数据类型。 在我的数据库中,类型是decimal(13,2),在Java中,我使用的是BigDecimal数据类型。我只是想读书 不幸的是,我得到了以下例外: 查看io.vertx.core.json.Json.ch

  • 问题内容: 我正在使用derby作为嵌入式数据库。此外,我在单元测试中使用了它的内存数据库选项。 我不知道如何正确关闭(快速查看代码) Derby数据库。我相信我有它适用于标准数据库,但是在内存数据库中尝试类似代码时遇到了不同的异常。 我将省略细节,如果需要其他感觉,我将添加它们。 基本上,我试图以以下两种方式关闭数据库,在这种方式中,内存数据库始终被称为“ eh”: 然后: 前者导致例外,但例外