亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來(lái)到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? jdbcworkflowstore.java

?? Java編譯osworkflow工作流系統(tǒng)的安裝和源代碼
?? JAVA
?? 第 1 頁(yè) / 共 4 頁(yè)
字號(hào):
/* * Copyright (c) 2002-2003 by OpenSymphony * All rights reserved. */package com.opensymphony.workflow.spi.jdbc;import com.opensymphony.module.propertyset.PropertySet;import com.opensymphony.module.propertyset.PropertySetManager;import com.opensymphony.workflow.StoreException;import com.opensymphony.workflow.query.Expression;import com.opensymphony.workflow.query.FieldExpression;import com.opensymphony.workflow.query.NestedExpression;import com.opensymphony.workflow.query.WorkflowExpressionQuery;import com.opensymphony.workflow.query.WorkflowQuery;import com.opensymphony.workflow.spi.SimpleStep;import com.opensymphony.workflow.spi.SimpleWorkflowEntry;import com.opensymphony.workflow.spi.Step;import com.opensymphony.workflow.spi.WorkflowEntry;import com.opensymphony.workflow.spi.WorkflowStore;import org.apache.commons.logging.Log;import org.apache.commons.logging.LogFactory;import java.sql.*;import java.util.*;import java.util.Date;import javax.naming.InitialContext;import javax.naming.NamingException;import javax.sql.DataSource;/** * JDBC implementation. * <p> * * The following properties are all <b>required</b>: * <ul> *  <li><b>datasource</b> - the JNDI location for the DataSource that is to be used.</li> *  <li><b>entry.sequence</b> - SQL query that returns the next ID for a workflow entry</li> *  <li><b>entry.table</b> - table name for workflow entry</li> *  <li><b>entry.id</b> - column name for workflow entry ID field</li> *  <li><b>entry.name</b> - column name for workflow entry name field</li> *  <li><b>entry.state</b> - column name for workflow entry state field</li> *  <li><b>step.sequence</b> - SQL query that returns the next ID for a workflow step</li> *  <li><b>history.table</b> - table name for steps in history</li> *  <li><b>current.table</b> - table name for current steps</li> *  <li><b>step.id</b> - column name for step ID field</li> *  <li><b>step.entryId</b> - column name for workflow entry ID field (foreign key relationship to [entry.table].[entry.id])</li> *  <li><b>step.stepId</b> - column name for step workflow definition step field</li> *  <li><b>step.actionId</b> - column name for step action field</li> *  <li><b>step.owner</b> - column name for step owner field</li> *  <li><b>step.caller</b> - column name for step caller field</li> *  <li><b>step.startDate</b> - column name for step start date field</li> *  <li><b>step.dueDate</b> - column name for optional step due date field</li> *  <li><b>step.finishDate</b> - column name for step finish date field</li> *  <li><b>step.status</b> - column name for step status field</li> *  <li><b>currentPrev.table</b> - table name for the previous IDs for current steps</li> *  <li><b>historyPrev.table</b> - table name for the previous IDs for history steps</li> *  <li><b>step.previousId</b> - column name for step ID field (foreign key relation to [history.table].[step.id] or [current.table].[step.id])</li> * </ul> * * @author <a href="mailto:plightbo@hotmail.com">Pat Lightbody</a> */public class JDBCWorkflowStore implements WorkflowStore {    //~ Static fields/initializers /////////////////////////////////////////////    private static final Log log = LogFactory.getLog(JDBCWorkflowStore.class);    //~ Instance fields ////////////////////////////////////////////////////////    protected DataSource ds;    protected String currentPrevTable;    protected String currentTable;    protected String entryId;    protected String entryName;    protected String entrySequence;    protected String entryState;    protected String entryTable;    protected String historyPrevTable;    protected String historyTable;    protected String stepActionId;    protected String stepCaller;    protected String stepDueDate;    protected String stepEntryId;    protected String stepFinishDate;    protected String stepId;    protected String stepOwner;    protected String stepPreviousId;    protected String stepSequence;    protected String stepStartDate;    protected String stepStatus;    protected String stepStepId;    protected boolean closeConnWhenDone = false;    //~ Methods ////////////////////////////////////////////////////////////////    public void setEntryState(long id, int state) throws StoreException {        Connection conn = null;        PreparedStatement ps = null;        try {            conn = getConnection();            String sql = "UPDATE " + entryTable + " SET " + entryState + " = ? WHERE " + entryId + " = ?";            ps = conn.prepareStatement(sql);            ps.setInt(1, state);            ps.setLong(2, id);            ps.executeUpdate();        } catch (SQLException e) {            throw new StoreException("Unable to update state for workflow instance #" + id + " to " + state, e);        } finally {            cleanup(conn, ps, null);        }    }    public PropertySet getPropertySet(long entryId) {        HashMap args = new HashMap(1);        args.put("globalKey", "osff_" + entryId);        return PropertySetManager.getInstance("jdbc", args);    }    ////////////METHOD #2 OF 3 //////////////////    ////////// ...gur;  ////////////////////    //kiz    public boolean checkIfORExists(NestedExpression nestedExpression) {        //GURKAN;        //This method checks if OR exists in any nested query        //This method is used by doNestedNaturalJoin() to make sure        //OR does not exist within query        int numberOfExp = nestedExpression.getExpressionCount();        if (nestedExpression.getExpressionOperator() == NestedExpression.OR) {            return true;        }        for (int i = 0; i < numberOfExp; i++) {            Expression expression = nestedExpression.getExpression(i);            if (expression.isNested()) {                NestedExpression nestedExp = (NestedExpression) expression;                return checkIfORExists(nestedExp);            }        }        //System.out.println("!!!...........false is returned ..!!!");        return false;    }    public Step createCurrentStep(long entryId, int wfStepId, String owner, Date startDate, Date dueDate, String status, long[] previousIds) throws StoreException {        Connection conn = null;        try {            conn = getConnection();            long id = createCurrentStep(conn, entryId, wfStepId, owner, startDate, dueDate, status);            addPreviousSteps(conn, id, previousIds);            return new SimpleStep(id, entryId, wfStepId, 0, owner, startDate, dueDate, null, status, previousIds, null);        } catch (SQLException e) {            throw new StoreException("Unable to create current step for workflow instance #" + entryId, e);        } finally {            cleanup(conn, null, null);        }    }    public WorkflowEntry createEntry(String workflowName) throws StoreException {        Connection conn = null;        PreparedStatement stmt = null;        try {            conn = getConnection();            String sql = "INSERT INTO " + entryTable + " (" + entryId + ", " + entryName + ", " + entryState + ") VALUES (?,?,?)";            if (log.isDebugEnabled()) {                log.debug("Executing SQL statement: " + sql);            }            stmt = conn.prepareStatement(sql);            long id = getNextEntrySequence(conn);            stmt.setLong(1, id);            stmt.setString(2, workflowName);            stmt.setInt(3, WorkflowEntry.CREATED);            stmt.executeUpdate();            return new SimpleWorkflowEntry(id, workflowName, WorkflowEntry.CREATED);        } catch (SQLException e) {            throw new StoreException("Error creating new workflow instance", e);        } finally {            cleanup(conn, stmt, null);        }    }    public List findCurrentSteps(long entryId) throws StoreException {        Connection conn = null;        PreparedStatement stmt = null;        ResultSet rset = null;        PreparedStatement stmt2 = null;        try {            conn = getConnection();            String sql = "SELECT " + stepId + ", " + stepStepId + ", " + stepActionId + ", " + stepOwner + ", " + stepStartDate + ", " + stepDueDate + ", " + stepFinishDate + ", " + stepStatus + ", " + stepCaller + " FROM " + currentTable + " WHERE " + stepEntryId + " = ?";            String sql2 = "SELECT " + stepPreviousId + " FROM " + currentPrevTable + " WHERE " + stepId + " = ?";            if (log.isDebugEnabled()) {                log.debug("Executing SQL statement: " + sql);            }            stmt = conn.prepareStatement(sql);            if (log.isDebugEnabled()) {                log.debug("Executing SQL statement: " + sql2);            }            stmt2 = conn.prepareStatement(sql2);            stmt.setLong(1, entryId);            rset = stmt.executeQuery();            ArrayList currentSteps = new ArrayList();            while (rset.next()) {                long id = rset.getLong(1);                int stepId = rset.getInt(2);                int actionId = rset.getInt(3);                String owner = rset.getString(4);                Date startDate = rset.getTimestamp(5);                Date dueDate = rset.getTimestamp(6);                Date finishDate = rset.getTimestamp(7);                String status = rset.getString(8);                String caller = rset.getString(9);                ArrayList prevIdsList = new ArrayList();                stmt2.setLong(1, id);                ResultSet rs = stmt2.executeQuery();                while (rs.next()) {                    long prevId = rs.getLong(1);                    prevIdsList.add(new Long(prevId));                }                long[] prevIds = new long[prevIdsList.size()];                int i = 0;                for (Iterator iterator = prevIdsList.iterator();                        iterator.hasNext();) {                    Long aLong = (Long) iterator.next();                    prevIds[i] = aLong.longValue();                    i++;                }                SimpleStep step = new SimpleStep(id, entryId, stepId, actionId, owner, startDate, dueDate, finishDate, status, prevIds, caller);                currentSteps.add(step);            }            return currentSteps;        } catch (SQLException e) {            throw new StoreException("Unable to locate current steps for workflow instance #" + entryId, e);        } finally {            cleanup(null, stmt2, null);            cleanup(conn, stmt, rset);        }    }    public WorkflowEntry findEntry(long theEntryId) throws StoreException {        Connection conn = null;        PreparedStatement stmt = null;        ResultSet rset = null;        try {            conn = getConnection();            String sql = "SELECT " + entryName + ", " + entryState + " FROM " + entryTable + " WHERE " + entryId + " = ?";            if (log.isDebugEnabled()) {                log.debug("Executing SQL statement: " + sql);            }            stmt = conn.prepareStatement(sql);            stmt.setLong(1, theEntryId);            rset = stmt.executeQuery();            rset.next();            String workflowName = rset.getString(1);            int state = rset.getInt(2);            return new SimpleWorkflowEntry(theEntryId, workflowName, state);        } catch (SQLException e) {            throw new StoreException("Error finding workflow instance #" + entryId);        } finally {            cleanup(conn, stmt, rset);        }    }    public List findHistorySteps(long entryId) throws StoreException {        Connection conn = null;        PreparedStatement stmt = null;        PreparedStatement stmt2 = null;        ResultSet rset = null;        try {            conn = getConnection();            String sql = "SELECT " + stepId + ", " + stepStepId + ", " + stepActionId + ", " + stepOwner + ", " + stepStartDate + ", " + stepDueDate + ", " + stepFinishDate + ", " + stepStatus + ", " + stepCaller + " FROM " + historyTable + " WHERE " + stepEntryId + " = ? ORDER BY " + stepId + " DESC";            String sql2 = "SELECT " + stepPreviousId + " FROM " + historyPrevTable + " WHERE " + stepId + " = ?";            if (log.isDebugEnabled()) {                log.debug("Executing SQL statement: " + sql);            }            stmt = conn.prepareStatement(sql);            if (log.isDebugEnabled()) {                log.debug("Executing SQL statement: " + sql2);            }            stmt2 = conn.prepareStatement(sql2);            stmt.setLong(1, entryId);            rset = stmt.executeQuery();            ArrayList currentSteps = new ArrayList();            while (rset.next()) {                long id = rset.getLong(1);                int stepId = rset.getInt(2);                int actionId = rset.getInt(3);                String owner = rset.getString(4);                Date startDate = rset.getTimestamp(5);                Date dueDate = rset.getTimestamp(6);                Date finishDate = rset.getTimestamp(7);                String status = rset.getString(8);                String caller = rset.getString(9);                ArrayList prevIdsList = new ArrayList();                stmt2.setLong(1, id);                ResultSet rs = stmt2.executeQuery();                while (rs.next()) {                    long prevId = rs.getLong(1);                    prevIdsList.add(new Long(prevId));                }                long[] prevIds = new long[prevIdsList.size()];                int i = 0;                for (Iterator iterator = prevIdsList.iterator();

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91极品美女在线| 日本va欧美va精品| 日韩电影在线免费| 激情伊人五月天久久综合| 成人黄动漫网站免费app| 欧美三级日本三级少妇99| 精品国产免费视频| 亚洲精品免费视频| 麻豆91精品视频| 91美女视频网站| 日韩三级免费观看| 中文字幕高清不卡| 婷婷开心激情综合| 不卡视频一二三四| 日韩一级大片在线观看| **网站欧美大片在线观看| 蜜桃av噜噜一区| 色系网站成人免费| 精品国产乱码久久久久久闺蜜| 亚洲色图在线视频| 麻豆国产欧美日韩综合精品二区 | 日韩欧美卡一卡二| 最新日韩在线视频| 国产一区二三区好的| 在线亚洲精品福利网址导航| 久久久.com| 日韩和欧美一区二区| 99re成人精品视频| 久久综合色一综合色88| 亚洲www啪成人一区二区麻豆| 高清不卡一区二区| 日韩一区二区中文字幕| 亚洲欧美欧美一区二区三区| 国产综合久久久久影院| 欧美丝袜丝交足nylons图片| 亚洲国产成人在线| 蜜臀av一区二区在线免费观看 | 午夜天堂影视香蕉久久| 成人av动漫在线| 精品福利一二区| 日韩精品欧美精品| 在线欧美日韩精品| 1区2区3区精品视频| 国产99精品视频| 精品国产一区二区三区忘忧草| 一区二区三区四区不卡视频| 欧美v亚洲v综合ⅴ国产v| 亚洲影视在线观看| 91在线视频播放地址| 国产亚洲欧美一级| 经典一区二区三区| 欧美一区二区免费视频| 午夜精品影院在线观看| 91极品美女在线| 亚洲日本va午夜在线影院| 粉嫩一区二区三区性色av| 久久这里只精品最新地址| 美女视频黄频大全不卡视频在线播放| 欧美日韩国产在线观看| 亚洲欧美偷拍卡通变态| 成人精品视频一区二区三区 | 丁香五精品蜜臀久久久久99网站| 精品国产青草久久久久福利| 美腿丝袜亚洲一区| 欧美一区二区三区四区在线观看| 香蕉乱码成人久久天堂爱免费| 色视频成人在线观看免| 一区二区三区久久| 在线观看日韩一区| 亚洲午夜影视影院在线观看| 欧美午夜精品电影| 亚洲sss视频在线视频| 欧美在线观看一区二区| 亚洲国产精品久久久久婷婷884| 色综合 综合色| 一区二区免费在线| 91成人国产精品| 亚洲国产成人va在线观看天堂| 欧美视频你懂的| 天天免费综合色| 日韩精品一区二区三区蜜臀| 久久精品国产**网站演员| 欧美成人一区二区三区片免费| 精品一区二区三区视频在线观看| 精品国一区二区三区| 国产一区 二区 三区一级| 久久精品男人的天堂| 成人精品视频网站| 亚洲三级视频在线观看| 在线观看av一区| 欧美视频中文字幕| 成人精品gif动图一区| 美国三级日本三级久久99| **欧美大码日韩| 久久精品一区八戒影视| 91精品国产黑色紧身裤美女| 99久久精品免费看国产免费软件| 免费黄网站欧美| 亚洲国产视频网站| 成人app网站| 欧美大片在线观看| 91视频精品在这里| 日韩欧美在线不卡| 欧美日韩黄视频| 日韩av一区二区在线影视| 欧美tickling网站挠脚心| 国产一区999| 亚洲男人的天堂av| 欧美日韩精品电影| 国产精品羞羞答答xxdd| 亚洲精品五月天| 日韩午夜三级在线| 成人av小说网| 日韩精品亚洲一区| 日本一区免费视频| 欧美精品一级二级| 国产91高潮流白浆在线麻豆| 亚洲综合一区二区三区| 精品国产在天天线2019| 91在线视频在线| 经典一区二区三区| 一区二区成人在线| 久久老女人爱爱| 欧美日韩国产欧美日美国产精品| 国产成人午夜精品5599 | 成人中文字幕合集| 日韩在线一二三区| 国产精品毛片a∨一区二区三区| 欧美人动与zoxxxx乱| 成人午夜激情视频| 老司机免费视频一区二区三区| 亚洲另类色综合网站| 精品国产乱码久久久久久蜜臀| 在线观看一区二区视频| 国产乱子伦一区二区三区国色天香| 亚洲综合无码一区二区| 久久精品人人做人人综合| 欧美精品视频www在线观看| 成人av先锋影音| 国产一区二区三区在线观看免费视频 | 青青草原综合久久大伊人精品 | 最新国产精品久久精品| 一本大道久久a久久综合婷婷| 欧美挠脚心视频网站| www久久久久| 污片在线观看一区二区| 懂色av噜噜一区二区三区av| 91精品国产综合久久国产大片| 国产午夜亚洲精品不卡| 亚洲久本草在线中文字幕| 国模冰冰炮一区二区| 日韩一区二区三区视频在线 | 91丨国产丨九色丨pron| 激情综合色综合久久综合| 亚洲国产视频在线| 亚洲欧洲日韩在线| 久久久久国产精品厨房| 欧美videossexotv100| 制服丝袜日韩国产| 欧美在线看片a免费观看| 色综合色狠狠天天综合色| 国产成人av自拍| 91在线观看免费视频| 欧美精品v国产精品v日韩精品| 91蜜桃在线免费视频| 成人午夜免费视频| 国产高清精品久久久久| 激情文学综合插| 精品一区二区三区免费播放| 日本特黄久久久高潮| 三级不卡在线观看| 亚洲国产精品一区二区www | 欧美精品三级在线观看| 欧美性色黄大片| 精品视频1区2区3区| 欧美性一区二区| 欧美日韩国产精选| 欧美日韩国产另类一区| 欧美色手机在线观看| 欧美性猛交xxxx乱大交退制版| 在线观看日韩电影| 欧美日韩亚洲综合在线 | 免费高清在线视频一区·| 日韩国产精品大片| 免费在线成人网| 日本怡春院一区二区| 美女久久久精品| 麻豆国产一区二区| 国产精品原创巨作av| 黄色日韩三级电影| 国产一区二区三区四区五区入口| 国产精品伊人色| 99综合影院在线| 91国产成人在线| 欧美日韩极品在线观看一区| 欧美一区二区高清| 欧美成人在线直播| 中文在线资源观看网站视频免费不卡| 99久久久精品免费观看国产蜜| 自拍偷拍亚洲综合|