与其他库共享Hibernate连接

时间:2016-10-26 12:44:13

标签: java quartz-scheduler c3p0

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

1 个答案:

答案 0 :(得分:2)

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

如果您使用的是spring,请将c3p0连接池定义为bean,并将其注入Hibernate会话工厂和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引用。