gpt4 book ai didi

java - 我应该在哪里存储 DBI 连接以及何时应该关闭它?

转载 作者:行者123 更新时间:2023-12-01 11:52:03 25 4
gpt4 key购买 nike

我将其存储在公共(public)静态字段中

public class DB {

private static final String url = "jdbc:sqlite:file:target/todo";
public static final DBI dbi = new DBI(url);


public static void migrate() {
Flyway flyway = new Flyway();
flyway.setDataSource(url, "", "");
flyway.migrate();
}
}

并且永远不要关闭它,还有更好的选择吗?

最佳答案

这相当于您如何处理获取应用程序中的任何依赖项。恕我直言,最好的通用模型是将其传递给需要它的事物的构造函数。如果您想在数据库访问周围放置某种 DAO 外观,请将 DBI 传递给 DAO 的构造函数。如果您使用 DI 框架,请将 DBI 实例绑定(bind)到框架,然后 @Inject 它。

对于有关连接的具体问题,相当于 JDBC 连接的 DBI 是句柄。您应该获取一个句柄,使用它,并在完成后立即关闭它。 DBI实例的典型用法是给它一个管理实际数据库连接的DataSource,通过在使用完后立即释放Handle,可以更好地利用连接池。

在大多数情况下,如果您想关闭数据源,则只需关闭 DBI 实例即可,这就是关闭 DBI 实例所做的全部操作。 98% 的情况下,在 java-for-server 世界中,关闭数据源没有任何意义,因此担心关闭 DBI(与 Handle 相比)并不是什么大问题。

使用 JDBI 时,请记住:

DBI -> Datasource
Handle -> Connection
Query/SQLStatement -> Statement

This doc详细阐述了这些。

关于java - 我应该在哪里存储 DBI 连接以及何时应该关闭它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28719279/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com