package CASche; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.util.List; public class ParaFromDB implements ParaBase { CASchePara schePara = null; String user = null; String password = null; String service = null; String ip = null; String port = null; String jdbcurl = null; CADB db = null; public ParaFromDB(String ip, String port, String service, String user, String password) { this.ip = ip; this.port = port; this.user = user; this.password = password; this.service = service; this.db = new CADB(ip, port, service, user, password); } public ParaFromDB(String jdbcurl, String user, String password) { this.jdbcurl = jdbcurl; this.password = password; this.db = new CADB(jdbcurl, user, password); } public void setSchePara(CASchePara schePara) { this.schePara = schePara; } public CASchePara getSchePara() { return this.schePara; } public int GetPara(String processName) { schePara.getMapOrder().clear(); schePara.getMapCAS().clear(); if (db.connDB()<1){ return -1; } String sql = " SELECT para_name, para_value, pos from (" + " SELECT para_name, para_value, 1 pos " + " FROM busi.t_ca_interface " + " WHERE program_type='CA_SCHE' and (para_name not like 'ORDER%' or para_name ='ORDER_COUNT') "; if (processName!= null && processName.equals("") == false){ sql += " AND process_name='"; sql += processName.toUpperCase(); sql += "' "; } sql += "union "; sql += " SELECT para_name, para_value, 2 pos "; sql += " FROM busi.t_ca_interface "; sql += " WHERE program_type='CA_SCHE' and (para_name like 'ORDER%' and para_name <>'ORDER_COUNT') "; if (processName!= null && processName.equals("") == false){ sql += " AND process_name='"; sql += processName.toUpperCase(); sql += "' "; } sql += " ) order by 3"; int count=0; PreparedStatement statementSql = db.prepareStatement(sql); try{ ResultSet resultSet = statementSql.executeQuery(); while(resultSet.next()){ String paraName = resultSet.getString("para_name"); if ("SRC_TABLE".equalsIgnoreCase(paraName) == true){ schePara.setSrcTable(resultSet.getString("para_value")); } if ("SRC_TABLE_BAK".equalsIgnoreCase(paraName) == true){ schePara.setSrcTableBak(resultSet.getString("para_value")); } if ("DST_TABLE".equalsIgnoreCase(paraName) == true){ schePara.setDstTable(resultSet.getString("para_value")); } if ("DST_TABLE_BAK".equalsIgnoreCase(paraName) == true){ schePara.setDstTableBak(resultSet.getString("para_value")); } if ("SEQ_DST_TRANSNUM".equalsIgnoreCase(paraName) == true){ schePara.setSeqDstTransnum(resultSet.getString("para_value")); } if ("ORDER_COUNT".equalsIgnoreCase(paraName) == true){ count = Integer.parseInt(resultSet.getString("para_value")); schePara.setOrderCount(count) ; } else{ String paraName2 = paraName.toUpperCase().trim(); int c = paraName2.charAt(paraName2.length()-1); if (paraName2.startsWith("ORDER") == true && c >='0' && c <='9'){ String no = paraName2.substring(5, paraName2.length()); int ino = Integer.parseInt(no); if (ino <=count){ schePara.getMapOrder().put(paraName2, resultSet.getString("para_value")); } } } } statementSql.close(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); if (db.checkSpecialErrorCode(e.getErrorCode()) == -1){ db.setConnectInterruptFlag(true); db.closeConn(); return -1; } } sql = "SELECT tsp.server_id, tsp.para_name, tsp.para_value " + " FROM busi.t_server_parameter tsp " + " WHERE tsp.status='ZC' " + " and program_type='CA_SCHE' "; if (processName!= null && processName.equals("") == false){ sql += " and server_id in (select server_id from busi.t_ca_interface where process_name='"; sql += processName.toUpperCase(); sql += "' and program_type='CA_SCHE' ) "; } sql += " order by server_id "; PreparedStatement statement = db.prepareStatement(sql); String serverID = null; String casType = null; String casSQL = null; int pool = 0; String addMode = null; String cancelMode= null; CASPrivatePara caspp = null; try{ ResultSet resultSet = statement.executeQuery(); while(resultSet.next()){ if (serverID == null){ serverID = resultSet.getString("server_id"); casType = null; casSQL = null; pool = 0; addMode = null; cancelMode = null; //caspp = new CASPrivatePara(); } else if (serverID.equals(resultSet.getString("server_id")) == false){ caspp = new CASPrivatePara(); caspp.setCasSQL(casSQL); caspp.setCasType(casType); caspp.setName(serverID); caspp.setPool(pool); caspp.setAddMode(addMode); caspp.setCancelMode(cancelMode); schePara.getMapCAS().put(serverID, caspp); serverID = resultSet.getString("server_id"); } String paraName = resultSet.getString("para_name"); if ("CAS_TYPE".equalsIgnoreCase(paraName) == true){ casType = resultSet.getString("para_value"); } if ("CAS_SQL".equalsIgnoreCase(paraName) == true){ casSQL = resultSet.getString("para_value"); } if ("POOL".equalsIgnoreCase(paraName) == true){ String pools = resultSet.getString("para_value"); pool = Integer.parseInt(pools); } if ("ADD_MODE".equalsIgnoreCase(paraName) == true){ addMode = resultSet.getString("para_value"); } if ("CANCEL_MODE".equalsIgnoreCase(paraName) == true){ cancelMode = resultSet.getString("para_value"); } } if (serverID != null){ caspp = new CASPrivatePara(); caspp.setCasSQL(casSQL); caspp.setCasType(casType); caspp.setName(serverID); caspp.setPool(pool); caspp.setAddMode(addMode); caspp.setCancelMode(cancelMode); schePara.getMapCAS().put(serverID, caspp); } statement.close(); return 1; } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); System.out.println(sql); if (db.checkSpecialErrorCode(e.getErrorCode()) == -1){ db.setConnectInterruptFlag(true); db.closeConn(); return -1; } } db.closeConn(); return 1; } }