如果提供给 Jdbc 类,则关闭数据源

十一月

我需要一点建议。我需要关闭 DataSource,但是 FluentJdbc 一旦获得 DataSource 似乎我没有办法让它重新关闭。理想情况下,我希望将 DataSource 包装到 try() 块中,但在这种情况下,连接池会打开并立即关闭。

一种方法是将 DataSource 存储在哈希中,但似乎有点开销。

我有以下代码来存储多个连接:

public class FluentJdbcFactory {
    private final static Logger logger = LoggerFactory.getLogger("Defrauder");
    private final static Map<String, FluentJdbc> instances = new HashMap<>();

    private static Properties get(String propertiesName) {
        try (InputStream in = FluentJdbcFactory.class.getClassLoader().getResourceAsStream(propertiesName)) {
            Properties p = new Properties();
            p.load(in);
            return p;
        } catch (IOException e) {
            throw new RuntimeException(e);
        }
    }

    public static FluentJdbc getInstance(String propertiesName) {
        if (!instances.containsKey(propertiesName)) {
            HikariDataSource ds = DatasourceConfig.setup(get(propertiesName));
            instances.put(propertiesName, new FluentJdbcBuilder()
                    .connectionProvider(ds)
                    .defaultSqlHandler(() -> FluentJdbcFactory::isCriticalSqlException)
                    .build());
        }
        return instances.get(propertiesName);
    }

    public static void close() {
        instances.forEach((k,v)->v.NON_EXISTANT_CLOSE_METHOD);
    }
}

有什么我可以更聪明的吗?

斯蒂芬·C

我需要关闭DataSource,但FluentJdbc一旦得到DataSource似乎我没有办法让它重新关闭。

我不认为有一种聪明的方法可以做到这一点。FluentJdbcAPI 中的假设是:

  • 它负责连接、语句和结果集的生命周期
  • 您负责Datasource.

但愚蠢的方式是非常轻量级的。创建一个具有 DataSource 和 FluentJdbc 属性的类,并将该类的实例用作instances地图中的值也许 30 行简单的代码?

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Camel jdbc:如果mysql连接关闭,如何重置数据源

来自分类Dev

Camel jdbc:如果mysql连接关闭,如何重置数据源

来自分类Dev

JDBC无法加载数据源的工厂类

来自分类Dev

将字符串流提供给类成员函数

来自分类Dev

CSS 仅将类或 css 提供给选定的元素

来自分类Dev

如何将数据从eventSources提供给EventListener

来自分类Dev

Django将文件数据提供给模型

来自分类Dev

无法将javascript提供给由ajax加载的数据

来自分类Dev

将静态JSON数据提供给Flask

来自分类Dev

从表中检索数据并提供给网格

来自分类Dev

将数据作为服务提供给程序

来自分类Dev

如何设置DynamoDB将数据提供给网站?

来自分类Dev

是否可以将表格中的数据提供给 wordpress?

来自分类Dev

提供给函数 st_geometryfromwkb 的 GIS 数据无效

来自分类Dev

将数据提供给不可变的纹理存储

来自分类Dev

事件源-提供给Command的数据和保存在Events中的数据

来自分类Dev

如果已知Int64,如何将Int64类型的值提供给泛型类型?

来自分类Dev

Mule JDBC数据源连接

来自分类Dev

Spark和分片JDBC数据源

来自分类Dev

Mule JDBC数据源连接

来自分类Dev

根据一列读取Excel数据并将其提供给Java类

来自分类Dev

根据一列读取Excel数据并将其提供给Java类

来自分类Dev

通过服务类中的 observable 将来自 Web 套接字的数据提供给组件

来自分类Dev

OpenJPA-ArgumentException:JDBC驱动程序或数据源类名称

来自分类Dev

如何在Blogger中将所需数据提供给布局数据标签

来自分类Dev

Python会忽略继承类中提供给元组的参数的默认值

来自分类Dev

如何将列表元素中的参数提供给类?

来自分类Dev

导入后将全局范围内的变量提供给类

来自分类Dev

将子类的构造函数提供给父类的对象有什么意义?

Related 相关文章

  1. 1

    Camel jdbc:如果mysql连接关闭,如何重置数据源

  2. 2

    Camel jdbc:如果mysql连接关闭,如何重置数据源

  3. 3

    JDBC无法加载数据源的工厂类

  4. 4

    将字符串流提供给类成员函数

  5. 5

    CSS 仅将类或 css 提供给选定的元素

  6. 6

    如何将数据从eventSources提供给EventListener

  7. 7

    Django将文件数据提供给模型

  8. 8

    无法将javascript提供给由ajax加载的数据

  9. 9

    将静态JSON数据提供给Flask

  10. 10

    从表中检索数据并提供给网格

  11. 11

    将数据作为服务提供给程序

  12. 12

    如何设置DynamoDB将数据提供给网站?

  13. 13

    是否可以将表格中的数据提供给 wordpress?

  14. 14

    提供给函数 st_geometryfromwkb 的 GIS 数据无效

  15. 15

    将数据提供给不可变的纹理存储

  16. 16

    事件源-提供给Command的数据和保存在Events中的数据

  17. 17

    如果已知Int64,如何将Int64类型的值提供给泛型类型?

  18. 18

    Mule JDBC数据源连接

  19. 19

    Spark和分片JDBC数据源

  20. 20

    Mule JDBC数据源连接

  21. 21

    根据一列读取Excel数据并将其提供给Java类

  22. 22

    根据一列读取Excel数据并将其提供给Java类

  23. 23

    通过服务类中的 observable 将来自 Web 套接字的数据提供给组件

  24. 24

    OpenJPA-ArgumentException:JDBC驱动程序或数据源类名称

  25. 25

    如何在Blogger中将所需数据提供给布局数据标签

  26. 26

    Python会忽略继承类中提供给元组的参数的默认值

  27. 27

    如何将列表元素中的参数提供给类?

  28. 28

    导入后将全局范围内的变量提供给类

  29. 29

    将子类的构造函数提供给父类的对象有什么意义?

热门标签

归档