0

То, что я пытаюсь сделать, - отобразить ответ из сообщения POST на HTML, загруженный в мой веб-просмотр. Однако мой веб-просмотр выглядит пустым. Я могу увидеть ответное сообщение в LogCat, распечатав его. Однако снова мой веб-просмотр выглядит пустым. Example.html - это загрузка страницы в мой веб-просмотр. Моя реализация ниже:

private void startSchedule() 
    { 
     for(int i=0;i<temPojoData.size();i++) 
     { 
      tempPojo tem =temPojoData.get(i); 
      /////////////////////// Daily and AllDays functionality start here ////////////////// 
      if(tem.getDaysweekmonth().equals("Daily")) 
      { 
       if(tem.getDaysbases().equals("AllDays")) { 
        if (findDateBTwoDates(tem.getStartDate(), tem.getEndDate())) { 
         Log.i("Daily Date", "Today Available"); 
         layoutID += tem.getLayout(); 
        } 
       }else if(tem.getDaysbases().equals("Whole Day")){ 

       }else if(tem.getDaysbases().equals("Morning")) 
       { scheduleStartTimes.add(tem.getStartTime()); 

       }else if(tem.getDaysbases().equals("After Noon")) 
       { scheduleStartTimes.add(tem.getStartTime()); 

       }else if(tem.getDaysbases().equals("Evening")) 
       { scheduleStartTimes.add(tem.getStartTime()); 

       }else if(tem.getDaysbases().equals("Night")) 
       { scheduleStartTimes.add(tem.getStartTime()); 

       }else if(tem.getDaysbases().equals("Choose Time")) 
       { scheduleStartTimes.add(tem.getStartTime()); 

       } 

      } 
      /////////////////////// Weekly and AllDays functionality start here ////////////////// 
      else if(tem.getDaysweekmonth().equals("weekly") && tem.getDaysbases().equals("AllDays")) 
      { 
       if(tem.getDaysbases().equals("AllDays")) { 

       } 
      } 
      /////////////////////// Monthly and AllDays functionality start here ////////////////// 
      else if(tem.getDaysweekmonth().equals("montly") && tem.getDaysbases().equals("AllDays")) 
      { 

       if(tem.getDaysbases().equals("AllDays")) { 

       } 
      } 

     } 
    } 

    private void findTimeBTwoTimes(String sTime,String eTime) 
    { 
     try { 
      String string1 = "20:11:13"; 
      Date time1 = new SimpleDateFormat("HH:mm:ss").parse(string1); 
      Calendar calendar1 = Calendar.getInstance(); 
      calendar1.setTime(time1); 

      String string2 = "14:49:00"; 
      Date time2 = new SimpleDateFormat("HH:mm:ss").parse(string2); 
      Calendar calendar2 = Calendar.getInstance(); 
      calendar2.setTime(time2); 
      calendar2.add(Calendar.DATE, 1); 

      String someRandomTime = "01:00:00"; 
      Date d = new SimpleDateFormat("HH:mm:ss").parse(someRandomTime); 
      Calendar calendar3 = Calendar.getInstance(); 
      calendar3.setTime(d); 
      calendar3.add(Calendar.DATE, 1); 

      Date x = calendar3.getTime(); 
      if (x.after(calendar1.getTime()) && x.before(calendar2.getTime())) { 
       //checkes whether the current time is between 14:49:00 and 20:11:13. 
       System.out.println(true); 
      } 
     } catch (ParseException e) { 
      e.printStackTrace(); 
     } 
    } 

    private boolean findDateBTwoDates(String sDate,String eDate) 
    { 
     try { 
      SimpleDateFormat sdf = new SimpleDateFormat("MM/dd/yyyy"); 
      String s = sDate.replace(" AM",""); 
      String e = eDate.replace(" AM",""); 
      String oeStartDateStr =sDate.replace("PM",""); 
      String oeEndDateStr =eDate.replace("PM",""); 
      Log.i("Start End Date ",sDate+"------------"+eDate); 
      Calendar cal = Calendar.getInstance(); 
      Integer year = cal.get(Calendar.YEAR); 

      Date startDate = sdf.parse(oeStartDateStr); 
      Date endDate = sdf.parse(oeEndDateStr); 
      Date d = new Date(); 
      String currDt = sdf.format(d); 

      if ((d.after(startDate) && (d.before(endDate))) || (currDt.equals(sdf.format(startDate)) || currDt.equals(sdf.format(endDate)))) { 
       System.out.println("Date is between 1st april to 14th nov..."); 
       return true; 
      } 
      /*else { 
       System.out.println("Date is not between 1st april to 14th nov..."); 

      }*/ 
     }catch (Exception e){} 

     return false; 
    } 
+0

Имеет ли вы привести коллекция содержит только поле результата в виде _id и empid? –

+0

Мое ожидание - получить данные из двух коллекций с $ или $ и условием. Мое состояние: Имя равное $ или: [{Имя: 'Name-1'}, {Name: 'Name-2'}] $ и результат больше 300. Поданный не является проблемой. –

+0

У Mongo нет объединений. Вы не можете присоединить данные из двух коллекций, используя запрос. Вам нужно будет сделать это в самом приложении. Получите все сотрудники (<- name condition->), а затем получите их идентификаторы и выполните другой запрос в коллекции результатов, используя (id и result> 300) в качестве критериев поиска. Если результат является единственным полем, отличным от _id и empid, почему бы не встроить сбор результатов в коллекцию сотрудников? –

ответ

0

Я объясню это в коде sudo, чтобы вы могли придумать решение.

Первым моментом в вашем ответе является то, что -> Нет, вы не можете сделать это прямолинейно. Причина этого в том, что MongoDB не поддерживает/поддерживает соединения. Как в SQL, где вы можете присоединиться к двум таблицам и запросить их для условных результатов; то же самое нельзя сделать в MongoDB.

Но не теряйте надежду. Вы не можете сделать соединение на стороне БД, но вы наверняка сможете найти решение на стороне драйвера/приложения. Я предлагаю вам сделать следующее. (Я использую драйвер JAVA и Морфий так аранжировка мои решения могут выглядеть специфическими для них)

имеют интерфейс DAO для обеих коллекций отдельно

public interface MyDAO1 extends DAO<MyClass1, ObjectId> 
{ 
    public MyClass1 getByName(String name); 
} 
public interface MyDAO2 extends DAO<MyClass2, ObjectId> 
{ 
    public MyClass2 getByResult(int result); 
} 

Первые замыкающих классы реализации для обоих указанных интерфейсов. Это довольно просто, поэтому я пропускаю его, чтобы перейти к настоящей части. Уже реализацию интерфейса

public class MyDAOImpl extends BasicDAO<MyClass, ObjectId> implements MyDAO1, MyDAO2 
{ 
    public MyClass1 getByName (String name) 
    { 
     MyClass1 output= query collection1 with with the Name; 
     return output; 
    } 
    public MyClass2 getByResult (int result) 
    { 
     MyClass2 output= query collection2 with with the result; 
     return output; 
    } 
    public void getByNameResult (String name, int result) 
    { 
     MyClass1 output1 = getByName (name); 
     MyClass2 output2 = getByResult (result); 
     print them in however format you want OR create a string; 
    } 
} 

Обратите внимание:

MyClass1 класс @Entity для сбора сотрудников

MyClass2 класс @Entity для сбора результатов

Смежные вопросы