我用Java编写Web应用程序并使用Hibernate将数据库映射到我的java对象。在Hibernate中,我使用C3PO池连接到数据库。现在我需要安排一些任务。因此我将使用Quartz。现在,计划任务将存储在数据库中。可以与Quartz共享C3PO的连接池吗?这样数据库设置在同一个文件中,并且只有一个库负责打开数据库连接。
答案 0 :(得分:2)
这是一种主观的事情,但足以说明,如果你想分享连接,你有很多选择。
如果您使用的是spring,请将c3p0连接池定义为bean,并将其注入Hibernate会话工厂和Quartz调度程序bean。
如果你想留下来"纯粹"如果不使用Spring,您可以在容器级别定义基于JNDI的数据源。
这两种方法都有一些细微差别。
不幸的是,没有说明"便携式"你正试图成为现在和你正在使用的东西,只有' java',' quartz-scheduler'和' c3p0'作为标签,答案最多也是模糊的。
修改强>
感谢OP添加其他信息。
因此,对于该信息,如果您使用的是动态Web项目,则可以将特定于容器的部署描述符添加到WebContent目录。
通过这些,您可以定义JNDI数据源。有关如何执行此操作的信息,请参阅特定容器。完成后,可以将Hibernate和Quartz配置为对已配置的数据源使用JNDI引用。