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

📄 oracledelegate.java

📁 Quartz is a full-featured, open source job scheduling system that can be integrated with, or used al
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
        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, null, 0);            ps.setInt(16, trigger.getPriority());            insertResult = ps.executeUpdate();            if(data != null) {                ps.close();                ps = conn                    .prepareStatement(rtp(UPDATE_ORACLE_TRIGGER_JOB_DETAIL_EMPTY_BLOB));                ps.setString(1, trigger.getName());                ps.setString(2, trigger.getGroup());                ps.executeUpdate();                ps.close();                        ps = conn.prepareStatement(rtp(SELECT_ORACLE_TRIGGER_JOB_DETAIL_BLOB));                ps.setString(1, trigger.getName());                ps.setString(2, trigger.getGroup());                        rs = ps.executeQuery();                        int res = 0;                        Blob dbBlob = null;                if (rs.next()) {                    dbBlob = writeDataToBlob(rs, 1, data);                } else {                    return res;                }                        rs.close();                ps.close();                        ps = conn.prepareStatement(rtp(UPDATE_ORACLE_TRIGGER_JOB_DETAIL_BLOB));                ps.setBlob(1, dbBlob);                ps.setString(2, trigger.getName());                ps.setString(3, trigger.getGroup());                        res = ps.executeUpdate();            }                    } finally {            closeResultSet(rs);            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 {        // save some clock cycles by unnecessarily writing job data blob ...        boolean updateJobData = trigger.getJobDataMap().isDirty();        byte[] data = null;        if (updateJobData && trigger.getJobDataMap().size() > 0) {            data = serializeJobData(trigger.getJobDataMap()).toByteArray();        }                        PreparedStatement ps = null;        PreparedStatement ps2 = null;        ResultSet rs = null;                int insertResult = 0;        try {            ps = conn.prepareStatement(rtp(UPDATE_ORACLE_TRIGGER));                            ps.setString(1, trigger.getJobName());            ps.setString(2, trigger.getJobGroup());            setBoolean(ps, 3, trigger.isVolatile());            ps.setString(4, trigger.getDescription());            long nextFireTime = -1;            if (trigger.getNextFireTime() != null) {                nextFireTime = trigger.getNextFireTime().getTime();            }            ps.setBigDecimal(5, new BigDecimal(String.valueOf(nextFireTime)));            long prevFireTime = -1;            if (trigger.getPreviousFireTime() != null) {                prevFireTime = trigger.getPreviousFireTime().getTime();            }            ps.setBigDecimal(6, new BigDecimal(String.valueOf(prevFireTime)));            ps.setString(7, state);            if (trigger.getClass() == SimpleTrigger.class) {                //                updateSimpleTrigger(conn, (SimpleTrigger)trigger);                ps.setString(8, TTYPE_SIMPLE);            } else if (trigger.getClass() == CronTrigger.class) {                //                updateCronTrigger(conn, (CronTrigger)trigger);                ps.setString(8, TTYPE_CRON);            } else {                //                updateBlobTrigger(conn, trigger);                ps.setString(8, TTYPE_BLOB);            }            ps.setBigDecimal(9, new BigDecimal(String.valueOf(trigger                    .getStartTime().getTime())));            long endTime = 0;            if (trigger.getEndTime() != null) {                endTime = trigger.getEndTime().getTime();            }            ps.setBigDecimal(10, new BigDecimal(String.valueOf(endTime)));            ps.setString(11, trigger.getCalendarName());            ps.setInt(12, trigger.getMisfireInstruction());            ps.setInt(13, trigger.getPriority());            ps.setString(14, trigger.getName());            ps.setString(15, trigger.getGroup());            insertResult = ps.executeUpdate();            if(updateJobData) {                ps.close();                ps = conn                        .prepareStatement(rtp(UPDATE_ORACLE_TRIGGER_JOB_DETAIL_EMPTY_BLOB));                ps.setString(1, trigger.getName());                ps.setString(2, trigger.getGroup());                ps.executeUpdate();                ps.close();                ps = conn.prepareStatement(rtp(SELECT_ORACLE_TRIGGER_JOB_DETAIL_BLOB));                ps.setString(1, trigger.getName());                ps.setString(2, trigger.getGroup());                rs = ps.executeQuery();                int res = 0;                if (rs.next()) {                    Blob dbBlob = writeDataToBlob(rs, 1, data);                    ps2 = conn.prepareStatement(rtp(UPDATE_ORACLE_TRIGGER_JOB_DETAIL_BLOB));                    ps2.setBlob(1, dbBlob);                    ps2.setString(2, trigger.getName());                    ps2.setString(3, trigger.getGroup());                    res = ps2.executeUpdate();                }            }        } finally {            closeResultSet(rs);            closeStatement(ps);            closeStatement(ps2);        }        if (insertResult > 0) {            deleteTriggerListeners(conn, trigger.getName(), trigger.getGroup());            String[] trigListeners = trigger.getTriggerListenerNames();            for (int i = 0; trigListeners != null && i < trigListeners.length; i++) {                insertTriggerListener(conn, trigger, trigListeners[i]);            }        }        return insertResult;    }        public int insertCalendar(Connection conn, String calendarName,            Calendar calendar) throws IOException, SQLException {        ByteArrayOutputStream baos = serializeObject(calendar);        PreparedStatement ps = null;        PreparedStatement ps2 = null;        ResultSet rs = null;        try {            ps = conn.prepareStatement(rtp(INSERT_ORACLE_CALENDAR));            ps.setString(1, calendarName);            ps.executeUpdate();            ps.close();            ps = conn.prepareStatement(rtp(SELECT_ORACLE_CALENDAR_BLOB));            ps.setString(1, calendarName);            rs = ps.executeQuery();            if (rs.next()) {                Blob dbBlob = writeDataToBlob(rs, 1, baos.toByteArray());                ps2 = conn.prepareStatement(rtp(UPDATE_ORACLE_CALENDAR_BLOB));                ps2.setBlob(1, dbBlob);                ps2.setString(2, calendarName);                return ps2.executeUpdate();            }            return 0;        } finally {            closeResultSet(rs);            closeStatement(ps);            closeStatement(ps2);        }    }    public int updateCalendar(Connection conn, String calendarName,            Calendar calendar) throws IOException, SQLException {        ByteArrayOutputStream baos = serializeObject(calendar);        PreparedStatement ps = null;        PreparedStatement ps2 = null;        ResultSet rs = null;        try {            ps = conn.prepareStatement(rtp(SELECT_ORACLE_CALENDAR_BLOB));            ps.setString(1, calendarName);            rs = ps.executeQuery();            if (rs.next()) {                Blob dbBlob = writeDataToBlob(rs, 1, baos.toByteArray());                ps2 = conn.prepareStatement(rtp(UPDATE_ORACLE_CALENDAR_BLOB));                ps2.setBlob(1, dbBlob);                ps2.setString(2, calendarName);                return ps2.executeUpdate();            }            return 0;        } finally {            closeResultSet(rs);            closeStatement(ps);            closeStatement(ps2);        }    }    public int updateJobData(Connection conn, JobDetail job)        throws IOException, SQLException {                ByteArrayOutputStream baos = serializeJobData(job.getJobDataMap());        byte[] data = baos.toByteArray();        PreparedStatement ps = null;        PreparedStatement ps2 = null;        ResultSet rs = null;        try {            ps = conn.prepareStatement(rtp(SELECT_ORACLE_JOB_DETAIL_BLOB));            ps.setString(1, job.getName());            ps.setString(2, job.getGroup());            rs = ps.executeQuery();            int res = 0;            if (rs.next()) {                Blob dbBlob = writeDataToBlob(rs, 1, data);                ps2 = conn.prepareStatement(rtp(UPDATE_ORACLE_JOB_DETAIL_BLOB));                ps2.setBlob(1, dbBlob);                ps2.setString(2, job.getName());                ps2.setString(3, job.getGroup());                res = ps2.executeUpdate();            }            return res;        } finally {            closeResultSet(rs);            closeStatement(ps);            closeStatement(ps2);        }    }    protected Blob writeDataToBlob(ResultSet rs, int column, byte[] data) throws SQLException {        Blob blob = rs.getBlob(column); // get blob        if (blob == null) {             throw new SQLException("Driver's Blob representation is null!");        }                if (blob instanceof oracle.sql.BLOB) { // is it an oracle blob?            ((oracle.sql.BLOB) blob).putBytes(1, data);            return blob;        } else {            throw new SQLException(                    "Driver's Blob representation is of an unsupported type: "                            + blob.getClass().getName());        }    }}// EOF

⌨️ 快捷键说明

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