使用Quartz获取数据库连接

我有一个要求,我需要在我的调度过程中插入数据并检索相同的内容。尽管我可以创建自己的连接类并且可以完成工作,但我想知道是否有办法使用Quartz API获取数据库连接。

由于Quartz有效地进行数据库连接和处理,所以我的目的是使用一个定义良好的结构而不是创建自己的结构。

我在Quartz中看到了以下代码

conn = DBConnectionManager.getInstance().getConnection( getDataSource()); 

但我不确定这种方法有多好,以获得连接。或者有任何好的示例/资源来创建一个有效的数据库连接类。

Quartz属性文件

 org.quartz.scheduler.instanceName=QuartzScheduler org.quartz.jobStore.class = org.quartz.impl.jdbcjobstore.JobStoreTX org.quartz.threadPool.threadCount=7 org.quartz.jobStore.driverDelegateClass = org.quartz.impl.jdbcjobstore.MSSQLDelegate org.quartz.jobStore.tablePrefix = QRTZ_ org.quartz.jobStore.dataSource = myDS org.quartz.dataSource.myDS.driver=com.mysql.jdbc.Driver org.quartz.dataSource.myDS.URL=jdbc:mysql://localhost:3306/quartz org.quartz.dataSource.myDS.user=root org.quartz.dataSource.myDS.password=root org.quartz.dataSource.myDS.maxConnections=5 

您可以通过命名您在属性文件中定义的数据源来利用Quartz进行连接

 conn = DBConnectionManager.getInstance().getConnection("myDS"); 

这里myDS是您在属性文件中定义的数据源的名称

但由于您正在使用石英的基础数据池,请确保关闭连接以便它应该返回池中。

这只是基于我对Quartz的了解以及它如何获得连接的概述。

如果你想获得DataSource

 import java.io.InputStream; import java.sql.SQLException; import java.util.Properties; import javax.sql.DataSource; import org.quartz.SchedulerException; import org.quartz.utils.PoolingConnectionProvider; import org.quartz.utils.PropertiesParser; /** * This class just exposes the underlying data source backed by C3PO * (http://www.mchange.com/projects/c3p0/index.html). */ class MyDataSource extends PoolingConnectionProvider { public MyDataSource(Properties config) throws SchedulerException, SQLException { super(config); } public DataSource dataSource() { return getDataSource(); } } /** This class exposes the data store configured in quartz.properties. */ public class MyDataSourceLoader { private static final String DATA_SOURCE_CONFIG = "quartz.properties"; private static final String DATA_SOURCE_PREFIX = "org.quartz.dataSource.myDS"; private static final DataSource dataSource; static { try { InputStream in = Thread.currentThread().getContextClassLoader().getResourceAsStream(DATA_SOURCE_CONFIG); Properties quartzConfig = new Properties(); quartzConfig.load(in); in.close(); PropertiesParser pp = new PropertiesParser(quartzConfig); Properties dataSourceConfig = pp.getPropertyGroup(DATA_SOURCE_PREFIX, true); MyDataSource mds = new MyDataSource(dataSourceConfig); dataSource = mds.dataSource(); } catch (Exception e) { throw new RuntimeException(e); } } public static DataSource dataSource() { return dataSource; } }