⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 pointbasedelegate.java

📁 Quartz is a full-featured, open source job scheduling system that can be integrated with, or used al
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
/*  * Copyright 2004-2005 OpenSymphony  *  * Licensed under the Apache License, Version 2.0 (the "License"); you may not  * use this file except in compliance with the License. You may obtain a copy  * of the License at  *  *   http://www.apache.org/licenses/LICENSE-2.0  *    * Unless required by applicable law or agreed to in writing, software  * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT  * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the  * License for the specific language governing permissions and limitations  * under the License. *  *//* * Previously Copyright (c) 2001-2004 James House */package org.quartz.impl.jdbcjobstore;import java.io.ByteArrayInputStream;import java.io.ByteArrayOutputStream;import java.io.IOException;import java.io.InputStream;import java.io.ObjectInputStream;import java.math.BigDecimal;import java.sql.Connection;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.SQLException;import org.apache.commons.logging.Log;import org.quartz.Calendar;import org.quartz.CronTrigger;import org.quartz.JobDetail;import org.quartz.SimpleTrigger;import org.quartz.Trigger;/** * <p> * This is a driver delegate for the Pointbase JDBC driver. * </p> *  * @author Gregg Freeman */public class PointbaseDelegate extends StdJDBCDelegate {    //private static Category log =    // Category.getInstance(PointbaseJDBCDelegate.class);    /**     * <p>     * Create new PointbaseJDBCDelegate instance.     * </p>     *      * @param logger     *          the logger to use during execution     * @param tablePrefix     *          the prefix of all table names     */    public PointbaseDelegate(Log logger, String tablePrefix, String instanceId) {        super(logger, tablePrefix, instanceId);    }    /**     * <p>     * Create new PointbaseJDBCDelegate instance.     * </p>     *      * @param logger     *          the logger to use during execution     * @param tablePrefix     *          the prefix of all table names     */    public PointbaseDelegate(Log logger, String tablePrefix, String instanceId,            Boolean useProperties) {        super(logger, tablePrefix, instanceId, useProperties);    }    //---------------------------------------------------------------------------    // jobs    //---------------------------------------------------------------------------    /**     * <p>     * Insert the job detail record.     * </p>     *      * @param conn     *          the DB Connection     * @param job     *          the job to insert     * @return number of rows inserted     * @throws IOException     *           if there were problems serializing the JobDataMap     */    public int insertJobDetail(Connection conn, JobDetail job)        throws IOException, SQLException {        //log.debug( "Inserting JobDetail " + job );        ByteArrayOutputStream baos = serializeJobData(job.getJobDataMap());        int len = baos.toByteArray().length;        ByteArrayInputStream bais = new ByteArrayInputStream(baos.toByteArray());        PreparedStatement ps = null;        int insertResult = 0;        try {            ps = conn.prepareStatement(rtp(INSERT_JOB_DETAIL));            ps.setString(1, job.getName());            ps.setString(2, job.getGroup());            ps.setString(3, job.getDescription());            ps.setString(4, job.getJobClass().getName());            setBoolean(ps, 5, job.isDurable());            setBoolean(ps, 6, job.isVolatile());            setBoolean(ps, 7, job.isStateful());            setBoolean(ps, 8, job.requestsRecovery());            ps.setBinaryStream(9, bais, len);            insertResult = ps.executeUpdate();        } finally {            closeStatement(ps);        }        if (insertResult > 0) {            String[] jobListeners = job.getJobListenerNames();            for (int i = 0; jobListeners != null && i < jobListeners.length; i++) {                insertJobListener(conn, job, jobListeners[i]);            }        }        return insertResult;    }    /**     * <p>     * Update the job detail record.     * </p>     *      * @param conn     *          the DB Connection     * @param job     *          the job to update     * @return number of rows updated     * @throws IOException     *           if there were problems serializing the JobDataMap     */    public int updateJobDetail(Connection conn, JobDetail job)        throws IOException, SQLException {        //log.debug( "Updating job detail " + job );        ByteArrayOutputStream baos = serializeJobData(job.getJobDataMap());        int len = baos.toByteArray().length;        ByteArrayInputStream bais = new ByteArrayInputStream(baos.toByteArray());        PreparedStatement ps = null;        int insertResult = 0;        try {            ps = conn.prepareStatement(rtp(UPDATE_JOB_DETAIL));            ps.setString(1, job.getDescription());            ps.setString(2, job.getJobClass().getName());            setBoolean(ps, 3, job.isDurable());            setBoolean(ps, 4, job.isVolatile());            setBoolean(ps, 5, job.isStateful());            setBoolean(ps, 6, job.requestsRecovery());            ps.setBinaryStream(7, bais, len);            ps.setString(8, job.getName());            ps.setString(9, job.getGroup());            insertResult = ps.executeUpdate();        } finally {            closeStatement(ps);        }        if (insertResult > 0) {            deleteJobListeners(conn, job.getName(), job.getGroup());            String[] jobListeners = job.getJobListenerNames();            for (int i = 0; jobListeners != null && i < jobListeners.length; i++) {                insertJobListener(conn, job, jobListeners[i]);            }        }        return insertResult;    }    public int insertTrigger(Connection conn, Trigger trigger, String state,            JobDetail jobDetail) throws SQLException, IOException {        ByteArrayOutputStream baos = serializeJobData(trigger.getJobDataMap());        int len = baos.toByteArray().length;        ByteArrayInputStream bais = new ByteArrayInputStream(baos.toByteArray());                PreparedStatement ps = null;        int insertResult = 0;        try {            ps = conn.prepareStatement(rtp(INSERT_TRIGGER));            ps.setString(1, trigger.getName());            ps.setString(2, trigger.getGroup());            ps.setString(3, trigger.getJobName());            ps.setString(4, trigger.getJobGroup());            setBoolean(ps, 5, trigger.isVolatile());            ps.setString(6, trigger.getDescription());            ps.setBigDecimal(7, new BigDecimal(String.valueOf(trigger                    .getNextFireTime().getTime())));            long prevFireTime = -1;            if (trigger.getPreviousFireTime() != null) {                prevFireTime = trigger.getPreviousFireTime().getTime();            }            ps.setBigDecimal(8, new BigDecimal(String.valueOf(prevFireTime)));            ps.setString(9, state);            if (trigger.getClass() == SimpleTrigger.class) {                ps.setString(10, TTYPE_SIMPLE);            } else if (trigger.getClass() == CronTrigger.class) {                ps.setString(10, TTYPE_CRON);            } else {                ps.setString(10, TTYPE_BLOB);            }            ps.setBigDecimal(11, new BigDecimal(String.valueOf(trigger                    .getStartTime().getTime())));            long endTime = 0;            if (trigger.getEndTime() != null) {                endTime = trigger.getEndTime().getTime();            }            ps.setBigDecimal(12, new BigDecimal(String.valueOf(endTime)));            ps.setString(13, trigger.getCalendarName());            ps.setInt(14, trigger.getMisfireInstruction());            ps.setBinaryStream(15, bais, len);            ps.setInt(16, trigger.getPriority());                        insertResult = ps.executeUpdate();        } finally {            closeStatement(ps);        }        if (insertResult > 0) {            String[] trigListeners = trigger.getTriggerListenerNames();            for (int i = 0; trigListeners != null && i < trigListeners.length; i++) {                insertTriggerListener(conn, trigger, trigListeners[i]);            }        }        return insertResult;    }        public int updateTrigger(Connection conn, Trigger trigger, String state,            JobDetail jobDetail) throws SQLException, IOException {        ByteArrayOutputStream baos = serializeJobData(trigger.getJobDataMap());        int len = baos.toByteArray().length;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -