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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? jdbcworkflowstore.java

?? Java編譯osworkflow工作流系統的安裝和源代碼
?? JAVA
?? 第 1 頁 / 共 4 頁
字號:
                        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 history steps for workflow instance #" + entryId, e);        } finally {            cleanup(null, stmt2, null);            cleanup(conn, stmt, rset);        }    }    public void init(Map props) throws StoreException {        entrySequence = getInitProperty(props, "entry.sequence", "SELECT nextVal('seq_os_wfentry')");        stepSequence = getInitProperty(props, "step.sequence", "SELECT nextVal('seq_os_currentsteps')");        entryTable = getInitProperty(props, "entry.table", "OS_WFENTRY");        entryId = getInitProperty(props, "entry.id", "ID");        entryName = getInitProperty(props, "entry.name", "NAME");        entryState = getInitProperty(props, "entry.state", "STATE");        historyTable = getInitProperty(props, "history.table", "OS_HISTORYSTEP");        currentTable = getInitProperty(props, "current.table", "OS_CURRENTSTEP");        currentPrevTable = getInitProperty(props, "currentPrev.table", "OS_CURRENTSTEP_PREV");        historyPrevTable = getInitProperty(props, "historyPrev.table", "OS_HISTORYSTEP_PREV");        stepId = getInitProperty(props, "step.id", "ID");        stepEntryId = getInitProperty(props, "step.entryId", "ENTRY_ID");        stepStepId = getInitProperty(props, "step.stepId", "STEP_ID");        stepActionId = getInitProperty(props, "step.actionId", "ACTION_ID");        stepOwner = getInitProperty(props, "step.owner", "OWNER");        stepCaller = getInitProperty(props, "step.caller", "CALLER");        stepStartDate = getInitProperty(props, "step.startDate", "START_DATE");        stepFinishDate = getInitProperty(props, "step.finishDate", "FINISH_DATE");        stepDueDate = getInitProperty(props, "step.dueDate", "DUE_DATE");        stepStatus = getInitProperty(props, "step.status", "STATUS");        stepPreviousId = getInitProperty(props, "step.previousId", "PREVIOUS_ID");        String jndi = (String) props.get("datasource");        if (jndi != null) {            try {                ds = (DataSource) lookup(jndi);                if (ds == null) {                    ds = (DataSource) new javax.naming.InitialContext().lookup(jndi);                }            } catch (Exception e) {                throw new StoreException("Error looking up DataSource at " + jndi, e);            }        }    }    public Step markFinished(Step step, int actionId, Date finishDate, String status, String caller) throws StoreException {        Connection conn = null;        PreparedStatement stmt = null;        try {            conn = getConnection();            String sql = "UPDATE " + currentTable + " SET " + stepStatus + " = ?, " + stepActionId + " = ?, " + stepFinishDate + " = ?, " + stepCaller + " = ? WHERE " + stepId + " = ?";            if (log.isDebugEnabled()) {                log.debug("Executing SQL statement: " + sql);            }            stmt = conn.prepareStatement(sql);            stmt.setString(1, status);            stmt.setInt(2, actionId);            stmt.setTimestamp(3, new Timestamp(finishDate.getTime()));            stmt.setString(4, caller);            stmt.setLong(5, step.getId());            stmt.executeUpdate();            SimpleStep theStep = (SimpleStep) step;            theStep.setActionId(actionId);            theStep.setFinishDate(finishDate);            theStep.setStatus(status);            theStep.setCaller(caller);            return theStep;        } catch (SQLException e) {            throw new StoreException("Unable to mark step finished for #" + step.getEntryId(), e);        } finally {            cleanup(conn, stmt, null);        }    }    public void moveToHistory(Step step) throws StoreException {        Connection conn = null;        PreparedStatement stmt = null;        try {            conn = getConnection();            String sql = "INSERT INTO " + historyTable + " (" + stepId + ',' + stepEntryId + ", " + stepStepId + ", " + stepActionId + ", " + stepOwner + ", " + stepStartDate + ", " + stepFinishDate + ", " + stepStatus + ", " + stepCaller + ") VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)";            if (log.isDebugEnabled()) {                log.debug("Executing SQL statement: " + sql);            }            stmt = conn.prepareStatement(sql);            stmt.setLong(1, step.getId());            stmt.setLong(2, step.getEntryId());            stmt.setInt(3, step.getStepId());            stmt.setInt(4, step.getActionId());            stmt.setString(5, step.getOwner());            stmt.setTimestamp(6, new Timestamp(step.getStartDate().getTime()));            if (step.getFinishDate() != null) {                stmt.setTimestamp(7, new Timestamp(step.getFinishDate().getTime()));            } else {                stmt.setNull(7, Types.TIMESTAMP);            }            stmt.setString(8, step.getStatus());            stmt.setString(9, step.getCaller());            stmt.executeUpdate();            long[] previousIds = step.getPreviousStepIds();            if ((previousIds != null) && (previousIds.length > 0)) {                sql = "INSERT INTO " + historyPrevTable + " (" + stepId + ", " + stepPreviousId + ") VALUES (?, ?)";                log.debug("Executing SQL statement: " + sql);                cleanup(null, stmt, null);                stmt = conn.prepareStatement(sql);                for (int i = 0; i < previousIds.length; i++) {                    long previousId = previousIds[i];                    stmt.setLong(1, step.getId());                    stmt.setLong(2, previousId);                    stmt.executeUpdate();                }            }            sql = "DELETE FROM " + currentPrevTable + " WHERE " + stepId + " = ?";            if (log.isDebugEnabled()) {                log.debug("Executing SQL statement: " + sql);            }            cleanup(null, stmt, null);            stmt = conn.prepareStatement(sql);            stmt.setLong(1, step.getId());            stmt.executeUpdate();            sql = "DELETE FROM " + currentTable + " WHERE " + stepId + " = ?";            if (log.isDebugEnabled()) {                log.debug("Executing SQL statement: " + sql);            }            cleanup(null, stmt, null);            stmt = conn.prepareStatement(sql);            stmt.setLong(1, step.getId());            stmt.executeUpdate();        } catch (SQLException e) {            throw new StoreException("Unable to move current step to history step for #" + step.getEntryId(), e);        } finally {            cleanup(conn, stmt, null);        }    }    public List query(WorkflowExpressionQuery e) throws StoreException {        //GURKAN;        // If it is simple, call buildSimple()        //  SELECT DISTINCT(ENTRY_ID) FROM OS_HISTORYSTEP WHERE FINISH_DATE < ?        //        // If it is nested, call doNestedNaturalJoin() if and only if the query is        // ANDed including nested-nestd queries        // If OR exists in any query call buildNested()        //        //doNestedNaturalJoin()        //  This doNestedNaturalJoin() method improves performance of the queries if and only if        //  the queries including nested queries are ANDed        //        //	SELECT DISTINCT (a1.ENTRY_ID) AS retrieved        //		FROM OS_CURRENTSTEP AS a1 , OS_CURRENTSTEP AS a2 , OS_CURRENTSTEP AS a3 , OS_CURRENTSTEP AS a4        //			WHERE ((a1.ENTRY_ID = a1.ENTRY_ID AND a1.ENTRY_ID = a2.ENTRY_ID) AND        //					 (a2.ENTRY_ID = a3.ENTRY_ID AND a3.ENTRY_ID = a4.ENTRY_ID))        //				AND ( a1.OWNER =  ?  AND a2.STATUS !=  ?  AND a3.OWNER =  ?  AND a4.STATUS !=  ?  )        //        //doNestedLeftJoin() //not used        //  For this method to work, order of queries is matter        //  This doNestedLeftJoin() method will generate the queries but it works if and only if        //  the query is in correct order -- it is your luck        //                SELECT DISTINCT (a0.ENTRY_ID) AS retrieved FROM OS_CURRENTSTEP AS a0        //                                LEFT JOIN OS_CURRENTSTEP a1  ON a0.ENTRY_ID = a1.ENTRY_ID        //        //                                LEFT JOIN OS_CURRENTSTEP a2  ON a1.ENTRY_ID = a2.ENTRY_ID        //                                LEFT JOIN OS_CURRENTSTEP a3  ON a2.ENTRY_ID = a3.ENTRY_ID        //                                                WHERE a1.OWNER =  ? AND (a2.STATUS =  ?  OR a3.OWNER =  ?)        //        if (log.isDebugEnabled()) {            log.debug("Starting Query");        }        Expression expression = e.getExpression();        if (log.isDebugEnabled()) {            log.debug("Have all variables");        }        if (expression.isNested()) {            NestedExpression nestedExp = (NestedExpression) expression;            StringBuffer sel = new StringBuffer();            StringBuffer columns = new StringBuffer();            StringBuffer leftJoin = new StringBuffer();            StringBuffer where = new StringBuffer();            StringBuffer whereComp = new StringBuffer();            StringBuffer orderBy = new StringBuffer();            List values = new LinkedList();            List queries = new LinkedList();            String columnName;            String selectString;            //Expression is nested and see if the expresion has OR            if (checkIfORExists(nestedExp)) {                //For doNestedLeftJoin() uncomment these -- again order is matter                //and comment out last two lines where buildNested() is called                //                //columns.append("SELECT DISTINCT (");                //columns.append("a0" + "." + stepEntryId);                //columnName = "retrieved";                //columns.append(") AS " + columnName);                //columns.append(" FROM ");                //columns.append(currentTable + " AS " + "a0");                //where.append("WHERE ");                //doNestedLeftJoin(e, nestedExp, leftJoin, where, values, queries, orderBy);                //selectString = columns.toString() + " " + leftJoin.toString() + " " + where.toString() + " " + orderBy.toString();                //System.out.println("LEFT JOIN ...");                //                //                columnName = buildNested(nestedExp, sel, values);                selectString = sel.toString();            } else {                columns.append("SELECT DISTINCT (");                columns.append("a1" + '.' + stepEntryId);                columnName = "retrieved";                columns.append(") AS " + columnName);                columns.append(" FROM ");                where.append("WHERE ");                doNestedNaturalJoin(e, nestedExp, columns, where, whereComp, values, queries, orderBy);                selectString = columns.toString() + ' ' + leftJoin.toString() + ' ' + where.toString() + " AND ( " + whereComp.toString() + " ) " + ' ' + orderBy.toString();                //              System.out.println("NATURAL JOIN ...");            }            //System.out.println("number of queries is      : " + queries.size());            //System.out.println("values.toString()         : " + values.toString());            //System.out.println("columnName                : " + columnName);            //System.out.println("where                     : " + where);            //System.out.println("whereComp                 : " + whereComp);            //System.out.println("columns                   : " + columns);            //          System.out.println("Query is : " + selectString + "\n");            return doExpressionQuery(selectString, columnName, values);        } else {            // query is not empty ... it's a SIMPLE query            // do what the old query did            StringBuffer qry;            List values = new LinkedList();            qry = new StringBuffer();            String columnName = buildSimple((FieldExpression) expression, qry, values);            if (e.getSortOrder() != WorkflowExpressionQuery.SORT_NONE) {                qry.append(" ORDER BY ");                if (e.getOrderBy() != 0) {                    String fName = fieldName(e.getOrderBy());                    qry.append(fName);                    // To help w/ MySQL and Informix, you have to include the column in the query                    String current = qry.toString();                    String entry = current.substring(0, current.indexOf(columnName)) + columnName + "), " + fName + ' ';                    entry += current.substring(current.indexOf(columnName) + columnName.length() + 1);                    qry = new StringBuffer(entry);                    if (e.getSortOrder() == WorkflowExpressionQuery.SORT_DESC) {                        qry.append(" DESC");                    } else {                        qry.append(" ASC");                    }                } else {                    qry.append(columnName);                }            }            //System.out.println("Query is: " + qry.toString());            return doExpressionQuery(qry.toString(), columnName, values);        }    }    public List query(WorkflowQuery query) throws StoreException {        List results = new ArrayList();        // going to try to do all the comparisons in one query        String sel;        String table;        int qtype = query.getType();        if (qtype == 0) { // then not set, so look in sub queries                          // todo: not sure if you would have a query that would look in both old and new, if so, i'll have to change this - TR                          // but then again, why are there redundant tables in the first place? the data model should probably change            if (query.getLeft() != null) {                qtype = query.getLeft().getType();            }        }        if (qtype == WorkflowQuery.CURRENT) {            table = currentTable;        } else {            table = historyTable;        }        sel = "SELECT DISTINCT(" + stepEntryId + ") FROM " + table + " WHERE ";        sel += queryWhere(query);        if (log.isDebugEnabled()) {            log.debug(sel);        }        Connection conn = null;        Statement stmt = null;        ResultSet rs = null;        try {            conn = getConnection();            stmt = conn.createStatement();            rs = stmt.executeQuery(sel);            while (rs.next()) {                // get entryIds and add to results list                Long id = new Long(rs.getLong(stepEntryId));                results.add(id);            }        } catch (SQLException ex) {            throw new StoreException("SQL Exception in query: " + ex.getMessage());        } finally {            cleanup(conn, stmt, rs);        }        return results;    }    protected Connection getConnection() throws SQLException {

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91精品国产一区二区| 欧美精品99久久久**| 本田岬高潮一区二区三区| 亚洲美腿欧美偷拍| 国产一区二区三区在线观看免费视频 | 欧美伊人久久久久久午夜久久久久| 99久久99久久久精品齐齐| 国产曰批免费观看久久久| 国产精品亚洲一区二区三区妖精| 国产麻豆午夜三级精品| 99久久国产免费看| 2023国产精品自拍| 亚洲欧美一区二区三区国产精品 | 欧美大尺度电影在线| 久久影院视频免费| 国产精品女同互慰在线看 | 偷拍与自拍一区| 亚洲国产日韩一区二区| 国内精品伊人久久久久av影院| 丁香网亚洲国际| 欧美精品一区二区三区蜜臀 | 亚洲18色成人| 国产成人av一区二区三区在线 | 欧美午夜电影网| 一区二区三区资源| 久久国产麻豆精品| 欧美性一二三区| 一区二区三区欧美| 国产精品66部| 亚洲成人动漫精品| 欧美在线免费播放| 国产午夜精品一区二区三区四区| **网站欧美大片在线观看| 狠狠狠色丁香婷婷综合久久五月| 99精品欧美一区二区三区小说| 欧美日韩国产123区| 国产精品国产馆在线真实露脸| 日韩电影免费在线看| www.一区二区| 欧美电影免费观看高清完整版在线| 在线国产电影不卡| 亚洲国产aⅴ成人精品无吗| 成人av资源网站| 成人欧美一区二区三区白人| 国产成人av电影在线| 日韩一区二区电影在线| 国产一区在线观看麻豆| 欧美一区二区在线播放| 国产精品嫩草影院av蜜臀| av一区二区三区四区| 久久先锋资源网| 成人爱爱电影网址| 欧美激情一区三区| 日韩黄色免费电影| 精品国产乱码久久久久久蜜臀 | 一区二区三区免费| 色一情一乱一乱一91av| 国产亚洲精品免费| 欧美网站一区二区| 亚洲一区二区欧美| 精品一区二区三区的国产在线播放| 久久久综合激的五月天| 亚洲一区在线看| 日韩美女视频一区二区在线观看| 午夜精品久久久久久久久| 成人一区二区在线观看| 国产精品护士白丝一区av| 视频一区视频二区在线观看| 欧美人xxxx| 午夜久久久影院| 国产精品久久久久久久久动漫 | 色呦呦国产精品| 亚洲三级电影网站| 日韩一区二区在线看| 韩国精品一区二区| 久久久久国产精品麻豆ai换脸 | 欧美成人精品1314www| 成人午夜免费视频| 一区二区视频免费在线观看| 91女人视频在线观看| 一区二区三区在线免费观看| 欧美视频一区二区三区四区| 日本不卡高清视频| 久久婷婷国产综合精品青草| 91精品国产丝袜白色高跟鞋| 成人性色生活片免费看爆迷你毛片| 国产精品久线在线观看| 日韩精品中文字幕在线不卡尤物| 精油按摩中文字幕久久| 国产精品你懂的在线欣赏| 日韩免费视频一区| 国产a区久久久| 国产精品毛片高清在线完整版| 欧美日产国产精品| 欧美一卡在线观看| 亚洲国产高清aⅴ视频| 不卡在线观看av| 国产乱码字幕精品高清av| 国产精品视频第一区| 成人av在线影院| 亚洲地区一二三色| 精品欧美黑人一区二区三区| 在线观看视频91| 国产一区二区三区四区在线观看| 久久精品欧美一区二区三区不卡| 91精品国产品国语在线不卡 | 欧美在线999| 午夜一区二区三区在线观看| 欧美成人乱码一区二区三区| aaa欧美大片| 福利一区在线观看| 五月婷婷色综合| 中文字幕一区二区三区四区 | 精品视频123区在线观看| 国内精品免费在线观看| 国产欧美日韩三区| 国产精品亚洲第一区在线暖暖韩国| 国产精品二三区| 亚洲日穴在线视频| 久久久久亚洲综合| 一本到三区不卡视频| 一本久道久久综合中文字幕| 另类的小说在线视频另类成人小视频在线| 日韩欧美在线1卡| 日韩一区二区精品在线观看| 91久久精品国产91性色tv| 一区二区三区日韩欧美精品| 亚洲精品中文字幕乱码三区| 国产三级一区二区| 欧美日韩一区二区三区四区五区| 欧美日韩国产影片| 日本高清不卡一区| 麻豆国产精品视频| 久99久精品视频免费观看| 国产精品成人免费在线| 久久综合久久综合久久综合| 久久久久国产免费免费| 中文字幕综合网| 国产又粗又猛又爽又黄91精品| 亚洲午夜国产一区99re久久| 亚洲午夜电影在线观看| 美女被吸乳得到大胸91| 国产一区二区精品久久99| 99久久99久久久精品齐齐| 欧美精品久久天天躁| 久久久久亚洲蜜桃| 亚洲精品视频在线| 麻豆精品一区二区三区| 成人小视频免费观看| 欧美亚洲综合另类| 久久麻豆一区二区| 亚洲自拍偷拍欧美| 国产成人综合亚洲91猫咪| 91色乱码一区二区三区| 精品国产乱码久久久久久蜜臀| 中文字幕一区二区三区乱码在线| 日韩激情在线观看| 99riav久久精品riav| 日韩午夜激情免费电影| 亚洲少妇屁股交4| 激情成人午夜视频| 成人激情图片网| 欧美精品一级二级| 欧美国产激情一区二区三区蜜月| 亚洲mv在线观看| 粉嫩蜜臀av国产精品网站| 欧美日韩美女一区二区| 欧美极品aⅴ影院| 欧美aⅴ一区二区三区视频| 色综合久久中文字幕综合网| 2021中文字幕一区亚洲| 香蕉av福利精品导航| 91麻豆国产在线观看| 久久久久97国产精华液好用吗| 亚洲成人精品一区二区| 99re6这里只有精品视频在线观看 99re8在线精品视频免费播放 | 亚洲成av人片| 波多野结衣91| 国产精品色哟哟| 国产成人综合自拍| 日韩美女在线视频| 丝袜美腿亚洲综合| 在线一区二区三区| 最新久久zyz资源站| 国产黄色成人av| 久久夜色精品国产欧美乱极品| 香蕉久久一区二区不卡无毒影院| 91丨porny丨户外露出| 国产精品嫩草影院com| 国产91精品久久久久久久网曝门| 欧美成人三级电影在线| 免费成人在线影院| 91精品国产乱| 欧美bbbbb| 精品欧美黑人一区二区三区| 蜜臀久久99精品久久久久宅男| 欧美精品在线视频| 日韩不卡一二三区| 欧美久久免费观看| 日本vs亚洲vs韩国一区三区二区|