コード例 #1
0
  /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  // 根据区段获得属于区段内的所有车站信息  并排序
  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);
  }
コード例 #2
0
 ///////////////////////////////////////////////////////////////////////////////////////////////////////////
 // 根据区段 从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;
 }
コード例 #3
0
 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;
 }
コード例 #4
0
  //////////////////// 以上的代码是写数据到数据库中//////////////////////////////
  // ********************************************************************************************************//
  //////////////////// 以下的代码是从数据库中读取内容//////////////////////////////
  ///////////////////////////////////////////////////////////////////////////////////////////////
  // 获取所有区段信息
  public void getAllDistrictInfo() {
    District tableName = new District();
    String sqlStr = "select * from District";

    List<District> list = databaseAccessHandler.sqlQuery(tableName, "District", sqlStr);

    baseParam.setAllDistrictName(list);

    // 测试代码
    // getAllPlanTrainInfoByDistrict("北京-呼和浩特");
  }
コード例 #5
0
  // 根据区段获得属于区段内的所有计划车次信息
  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是否已经存在
    }
  }