///////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // 根据区段获得属于区段内的所有车站信息 并排序 public void getAllStationInfoByDistrict(String districtName) { StationDistrictRelation tableName = new StationDistrictRelation(); // 设置要进行操作的数据库表名 String sqlStr = "select * from stationdistrictrelation where District_name = '" + districtName + "'"; // 获取区段内所有车站信息 List<StationDistrictRelation> list = databaseAccessHandler.sqlQuery(tableName, "StationDistrictRelation", sqlStr); List<StationDistrictRelation> sortedStationDistrictRelationList = new ArrayList<StationDistrictRelation>(); // 对区段内所有车站信息进行排序 : 首站->终点站 sortedStationDistrictRelationList = this.sortStations(list); baseParam.setSortedStationDistrictRelationList(sortedStationDistrictRelationList); if (sortedStationDistrictRelationList == null || sortedStationDistrictRelationList.size() == 0) return; int len = sortedStationDistrictRelationList.size(); List<String> stationNameList = new ArrayList<String>(); // 计算区段内站的总距离 和提取车站名 int sumStationDistance = 0; for (int i = 0; i < len; i++) { StationDistrictRelation sdr = sortedStationDistrictRelationList.get(i); sumStationDistance = sumStationDistance + sdr.getPredistance(); stationNameList.add(sdr.getStation_name()); // 提取车站名 } BaseParam.setSortedStationNameList(stationNameList); baseParam.setSumStationDistance(sumStationDistance); }
/////////////////////////////////////////////////////////////////////////////////////////////////////////// // 根据区段 从TrainDistrictRelation表获得属于区段内的所有计划车次信息 仅含车次信息 目前不用 private List<TrainDistrictRelation> getAllTrainDistrictRelationByDistrict(String districtName) { TrainDistrictRelation tableName = new TrainDistrictRelation(); // 设置要进行操作的数据库表名 String sqlStr = "select * from Traindistrictrelation where District_name = '" + districtName + "'"; List<TrainDistrictRelation> trainNameList = databaseAccessHandler.sqlQuery(tableName, "TrainDistrictRelation", sqlStr); return trainNameList; }
private List<Train> getAllTrainsByDistrict(String districtName) { Train tableName = new Train(); // 设置要进行操作的数据库表名 String sqlStr = "select * from Train where Train.Train_name in " + "(select Train_name from Traindistrictrelation where District_name='" + districtName + "')"; List<Train> trainList = databaseAccessHandler.sqlQuery(tableName, "Train", sqlStr); return trainList; }
//////////////////// 以上的代码是写数据到数据库中////////////////////////////// // ********************************************************************************************************// //////////////////// 以下的代码是从数据库中读取内容////////////////////////////// /////////////////////////////////////////////////////////////////////////////////////////////// // 获取所有区段信息 public void getAllDistrictInfo() { District tableName = new District(); String sqlStr = "select * from District"; List<District> list = databaseAccessHandler.sqlQuery(tableName, "District", sqlStr); baseParam.setAllDistrictName(list); // 测试代码 // getAllPlanTrainInfoByDistrict("北京-呼和浩特"); }
// 根据区段获得属于区段内的所有计划车次信息 public void getAllPlanTrainInfoByDistrict(String districtName) { // ORDER BY 记录将按照默认的升序进行排列(即:从1到9,从a到z)使用DESC 数据按照降序排列 Plan tableName = new Plan(); // 设置要进行操作的数据库表名 String sqlStr = "select * from plan where District_name = '" + districtName + "' ORDER BY Plan_arrivestationtime,Plan_leavestationtime"; // 从plan表中获取区段内所有车次信息 已经按照到站和离站时间排好序 List<Plan> planTrainList = databaseAccessHandler.sqlQuery(tableName, "Plan", sqlStr); ////////////////////////////////////////////////////////////////// // 从TrainDistrictRelation表中获取区段内所有车次信息,仅有车次信息 原来的 // List<TrainDistrictRelation> trainNameList = // getAllTrainDistrictRelationByDistrict(districtName); // 从Train表中获取区段内所有车次信息 List<Train> trainNameList = getAllTrainsByDistrict(districtName); if (trainNameList == null || trainNameList.size() == 0) return; // 对trainNameList进行加工,方便getTrainDirectionByTrainName方法的执行,提高效率 Iterator<Train> it = trainNameList.iterator(); while (it.hasNext()) { Train data = (Train) it.next(); trainNameDirectionMap.put(data.getTrain_name(), data.getTrain_direction()); } baseParam.setTrainNameDirectionMap(trainNameDirectionMap); // 对每一个车站,获取经过的所有车次信息,并自动排序 sortPlanTrainForStation(planTrainList); // 转换格式 int len = trainNameList.size(); // 每次执行,仅对一个车次的信息的进行操作 for (int i = 0; i < len; i++) { String trainName = trainNameList.get(i).getTrain_name(); // 依据车次trainName按照车站的先后顺序对本车次进行排序 首站->终点站 List<Plan> sortPlanTrainList = sortPlanTrainList(planTrainList, trainName); // 依据车次trainName,对排好序的车次详细信息进行加工,使之用于屏幕绘图 setTrainPlanFromatList(sortPlanTrainList, trainName); } // 将车次信息添加到tdcsDataset的TrainList中 for (int i = 0; i < len; i++) { String trainName = trainNameList.get(i).getTrain_name(); trainNameExist(trainName); // 判断trainName是否已经存在 } }