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

📄 actiinsreledatadao.java

📁 公司自己开发的工作流引擎
💻 JAVA
字号:
package cn.com.iaspec.workflow.engine.dao;

import java.sql.*;
import java.util.*;
import org.apache.log4j.*;
import cn.com.iaspec.workflow.db.*;
import cn.com.iaspec.workflow.*;
import cn.com.iaspec.workflow.vo.db.*;
import cn.com.iaspec.workflow.vo.workflow.ActivityVariable;

public class ActiInsReleDataDAO{
  private static Logger logger=Logger.getLogger(ActiInsReleDataDAO.class);
  public ActiInsReleDataDAO(){
  }

  /**
   * 查询LaWorkItemRel信息
   * @param info LaWorkItemRel
   * @throws SQLException
   * @return List
   */
  public List query(ActiInsReleData data)
      throws SQLException{
    Connection conn=null;
    Statement stm=null;
    try{
      conn=WorkflowDBConnectionManager.getInstance().getConnection();
      stm=conn.createStatement();
      String sql=" select * from actiinsreledata ";
      StringBuffer sbWhere=getQueryString(data);
      sql=sql+sbWhere.toString();
      logger.info("......query sql:"+sql);
      ResultSet rs=stm.executeQuery(sql);
      List list=this.resultsetToActiInsReleData(rs);
      return list;
    }
    finally{
      WorkflowDBConnectionManager.getInstance().close(stm,false);
      WorkflowDBConnectionManager.getInstance().close(conn);
    }
  }

  /**
   * 更新ActiInsReleData信息
   * @param info LaWorkItemRel
   * @throws SQLException
   * @return List
   */
  public void update(ActiInsReleData newData,ActiInsReleData oldData)
      throws SQLException{
    Connection conn=null;
    Statement stm=null;
    try{
      conn=WorkflowDBConnectionManager.getInstance().getConnection();
      stm=conn.createStatement();
      String sql=" update actiinsreledata set ";
      StringBuffer sbWhere=getQueryString(oldData);
      StringBuffer sbUpdata=getQueryString(newData);
      if(sbWhere.length()<=0||sbUpdata.length()<=0){
        throw new SQLException("更新数据为空!");
      }
      sql=sql+sbUpdata.toString()+sbWhere.toString();
      logger.info("......query sql:"+sql);
      stm.execute(sql);
    }
    finally{
      WorkflowDBConnectionManager.getInstance().close(stm,false);
      WorkflowDBConnectionManager.getInstance().close(conn);
    }
  }

  /**
   * 更新信息
   * @param newDataList List
   * @param oldDataList List
   * @throws SQLException
   */
  public void update(List newDataList,List oldDataList)
      throws Exception{
    Connection conn=null;
    Statement stm=null;
    try{
      conn=WorkflowDBConnectionManager.getInstance().getConnection();
      stm=conn.createStatement();
      StringBuffer sbSql=new StringBuffer();
      if(newDataList==null||oldDataList==null){
        throw new SQLException("更新数据为空!");
      }
      for(int i=0;i<newDataList.size();i++){
        ActiInsReleData newData=(ActiInsReleData)newDataList.get(i);
        ActiInsReleData oldData=(ActiInsReleData)oldDataList.get(i);
        String sql=" update actiinsreledata set ";
        StringBuffer sbWhere=getQueryString(oldData);
        StringBuffer sbUpdata=this.getStrInsertValues(newData);
        if(sbWhere.length()<=0||sbUpdata.length()<=0){
          throw new SQLException("更新数据为空!");
        }
        sql=sql+sbUpdata.toString()+sbWhere.toString();
        sbSql.append(sql);
        sbSql.append(";");
      }
      //删除最后一个;号
      if(sbSql.length()>0){
        sbSql.delete(sbSql.length()-1,sbSql.length());
        logger.info("......query sql:"+sbSql.toString());
        stm.execute(sbSql.toString());
      }

    }
    finally{
      WorkflowDBConnectionManager.getInstance().close(stm,false);
      WorkflowDBConnectionManager.getInstance().close(conn);
    }
  }

  private List resultsetToActiInsReleData(ResultSet rs)
      throws SQLException{
    List list=new ArrayList();
    while(rs.next()){
      ActiInsReleData data=new ActiInsReleData();
      data.setAirAtiId(rs.getLong("air_atiid"));
      data.setAirClassPath(rs.getString("air_classpath"));
      data.setAirDirection(rs.getString("air_direction"));
      data.setAirGlobalName(rs.getString("air_globalname"));
      data.setAirId(rs.getLong("air_id"));
      data.setAirIsSplitArray(rs.getInt("air_splitarray"));
      data.setAirNumbValue(rs.getDouble("air_numbvalue"));
      data.setAirObjectValue(null);
      data.setAirRemark(rs.getString("air_remark"));
      data.setAirStringValue(rs.getString("air_stringvalue"));
      data.setAirVariableName(rs.getString("air_variablename"));
      data.setAirVariableType(rs.getInt("air_variabletype"));
      list.add(data);
    }
    return list;
  }

  /**
   * 取得查询条件
   * @param rel LaWorkItemRel
   * @return StringBuffer
   */
  private StringBuffer getQueryString(ActiInsReleData data){
    StringBuffer sb=new StringBuffer();
    if(data!=null){
      if(data.getAirAtiId()!=WorkflowConstant.LONG_INIT_VALUE){
        sb.append(" air_atiid = "+data.getAirAtiId()+" ");
        sb.append(" and ");
      }
      if(data.getAirClassPath()!=null&&!data.getAirClassPath().equals("")){
        sb.append(" air_classpath = '"+data.getAirClassPath()+"' ");
        sb.append(" and ");
      }
      if(data.getAirDirection()!=null&&!data.getAirDirection().equals("")){
        sb.append(" air_direction = '"+data.getAirDirection()+"' ");
        sb.append(" and ");
      }
      if(data.getAirGlobalName()!=null&&!data.getAirGlobalName().equals("")){
        sb.append(" air_globalname = '"+data.getAirGlobalName()+"' ");
        sb.append(" and ");
      }
      if(data.getAirId()!=WorkflowConstant.LONG_INIT_VALUE){
        sb.append(" air_id = "+data.getAirId()+" ");
        sb.append(" and ");
      }
      if(data.getAirIsSplitArray()!=WorkflowConstant.INT_INIT_VALUE){
        sb.append(" air_issplitarray = "+data.getAirIsSplitArray()+" ");
        sb.append(" and ");
      }
      if(data.getAirNumbValue()!=WorkflowConstant.DOUBLE_INIT_VALUE){
        sb.append(" air_numbvalue = "+data.getAirNumbValue()+" ");
        sb.append(" and ");
      }

      if(data.getAirRemark()!=null&&!data.getAirRemark().equals("")){
        sb.append(" air_remark = '"+data.getAirRemark()+"' ");
        sb.append(" and ");
      }

      if(data.getAirStringValue()!=null&&!data.getAirStringValue().equals("")){
        sb.append(" air_stringvalue = '"+data.getAirStringValue()+"' ");
        sb.append(" and ");
      }

      if(data.getAirVariableName()!=null&&!data.getAirVariableName().equals("")){
        sb.append(" air_variablename = '"+data.getAirVariableName()+"' ");
        sb.append(" and ");
      }

      if(data.getAirVariableType()!=WorkflowConstant.INT_INIT_VALUE){
        sb.append(" air_variabletype = "+data.getAirVariableType()+" ");
        sb.append(" and ");
      }
    }
    if(sb.length()>0){
      //增加查询条件关键字
      sb.insert(0," where ");
      //去除最后一个" AND "操作符
      sb.delete(sb.length()-5,sb.length());
    }
    return sb;
  }

  /**
   * 根据data取得update语句
   * @param data ActiInsReleData
   * @throws Exception
   * @return StringBuffer
   */
  private StringBuffer getStrInsertValues(ActiInsReleData data)
      throws Exception{
    StringBuffer sbSQL=new StringBuffer();
    if(data.getAirAtiId()!=WorkflowConstant.LONG_INIT_VALUE){
      sbSQL.append("air_atiid =");
      sbSQL.append(data.getAirAtiId());
      sbSQL.append(",");
    }
    if(data.getAirClassPath()!=null&&!data.getAirClassPath().equals("")){
      sbSQL.append("air_classpath ='");
      sbSQL.append(data.getAirClassPath());
      sbSQL.append("',");
    }
    if(data.getAirDirection()!=null&&!data.getAirDirection().equals("")){
      sbSQL.append("air_direction ='");
      sbSQL.append(data.getAirDirection());
      sbSQL.append("',");
    }

    if(data.getAirGlobalName()!=null&&!data.getAirDirection().equals("")){
      sbSQL.append("air_globalname ='");
      sbSQL.append(data.getAirGlobalName());
      sbSQL.append("',");
    }
    if(data.getAirId()!=WorkflowConstant.LONG_INIT_VALUE){
      sbSQL.append("air_id =");
      sbSQL.append(data.getAirId());
      sbSQL.append(",");
    }
    if(data.getAirIsSplitArray()!=WorkflowConstant.INT_INIT_VALUE){
      sbSQL.append("air_issplitarray =");
      sbSQL.append(data.getAirIsSplitArray());
      sbSQL.append(",");
    }
    if(data.getAirNumbValue()!=WorkflowConstant.DOUBLE_INIT_VALUE){
      sbSQL.append("air_numbvalue =");
      sbSQL.append(data.getAirNumbValue());
      sbSQL.append(",");
    }
    if(data.getAirRemark()!=null&&!data.getAirRemark().equals("")){
      sbSQL.append("air_remark ='");
      sbSQL.append(data.getAirRemark());
      sbSQL.append("',");
    }
    if(data.getAirStringValue()!=null&&!data.getAirStringValue().equals("")){
      sbSQL.append("air_stringvalue ='");
      sbSQL.append(data.getAirStringValue());
      sbSQL.append("',");
    }
    if(data.getAirVariableName()!=null&&!data.getAirVariableName().equals("")){
      sbSQL.append("air_variablename ='");
      sbSQL.append(data.getAirVariableName());
      sbSQL.append("',");
    }
    if(data.getAirVariableType()!=WorkflowConstant.INT_INIT_VALUE){
      sbSQL.append("air_variabletype =");
      sbSQL.append(data.getAirNumbValue());
      sbSQL.append(",");
    }

    //删除最后一个逗号
    if(sbSQL.length()>0){
      sbSQL.delete(sbSQL.length()-1,sbSQL.length());
    }
    return sbSQL;
  }

  public ActivityVariable getActiInstVar(long actiInstId,String varName)throws Exception{
    String sql = "select * from actiInsReledata where air_atiid = ? and air_variableName = ?";
    Connection conn = null;
    PreparedStatement ptmt = null;
    ResultSet rowset = null;
    ActivityVariable variable = new ActivityVariable();

    try{
      conn = WorkflowDBConnectionManager.getInstance().getConnection();
      ptmt = conn.prepareStatement(sql);
      ptmt.setLong(1,actiInstId);
      ptmt.setString(2,varName);

      rowset = ptmt.executeQuery();
      if(rowset.next()){
        variable.setAttributeName(varName);
        variable.setClassPath(rowset.getString("air_classpath"));
        variable.attributeType = rowset.getInt("air_variableType");
        variable.setDirection(rowset.getInt("air_direction"));
        variable.setGlobalName(rowset.getString("air_globalName"));
        variable.setStringValue(rowset.getString("air_stringValue"));
        variable.setDoubleValue(rowset.getDouble("air_numbValue"));
      }
    }catch(SQLException sqlex){
      sqlex.printStackTrace();
      throw sqlex;
    }finally{
      WorkflowDBConnectionManager.getInstance().close(ptmt,false);
      WorkflowDBConnectionManager.getInstance().close(conn);
    }

    return variable;
  }
}

⌨️ 快捷键说明

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