gpt4 book ai didi

java - 与其他库共享 Hibernate 连接

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

我正在用 Java 编写一个 Web 应用程序,并使用 Hibernate 将数据库与我的 java 对象映射。在 Hibernate 中,我使用 C3PO 池连接到数据库。现在我需要安排一些任务。因此我将使用 Quartz。现在计划的任务将存储在数据库中。 C3PO的连接池可以和Quartz共享吗?这样数据库设置就位于同一个文件中,并且只有一个库负责打开数据库连接。

最佳答案

这是一个主观的事情,但足以说明,如果您想共享连接,您有多种选择。

如果您使用的是 spring,请将 c3p0 连接池定义为一个 bean,并将其注入(inject)到 Hibernate session 工厂和 Quartz 调度程序 bean 中。

如果您想保持“纯粹”并且不使用 Spring,您可以在容器级别定义基于 JNDI 的数据源。

这两种方法都存在一些细微差别。

不幸的是,如果没有表明您想要做到的“可移植性”以及您当前使用的内容(除了“java”、“quartz-scheduler”和“c3p0”之外)作为标签,那么答案充其量也将是模糊的。

编辑

感谢 OP 添加更多信息。

因此,关于该信息,如果您使用的是动态 Web 项目,则可以将容器特定的部署描述符添加到 WebContent 目录。

  • 对于 tomcat,META-INF/context.xml
  • 对于 Jetty,WEB-INF/jetty-web.xml

使用这些,您可以定义 JNDI 数据源。有关如何执行此操作的信息,请参阅特定容器。完成后,Hibernate 和 Quartz 可以配置为对您已配置的数据源使用 JNDI 引用。

关于java - 与其他库共享 Hibernate 连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40262649/

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