Проблема с проектированием баз данных для MVC - 1 таблица на модель

Ну, в первый раз, когда вы запускаете приложение, isFirstTime имеет значение true, поэтому следующий блок выполняется

if (isFirstTime) 
{   
   //implement your first time logic
   editor.putBoolean("isFirstTime", false);
   editor.commit();
   Intent mainIntent;
   mainIntent = new Intent(SplashActivity.this, LoginActivity.class);
   startActivity(mainIntent);
   finish();  
}

После того, как этот блок isFirstTime становится ложным

Теперь, в ваш getlogindetails

@Override
public void onResponse(Call<Login> call, Response<Login> response) {
// String status=response.body().getStatus().toString();
   if (response !=null && response.isSuccessful()) {
         String status = response.body().getStatus();
             if(status=="success") {
                 progressDialog.dismiss();
                 Toast.makeText(LoginActivity.this, "Login successfully", Toast.LENGTH_SHORT).show();
                 Intent mainIntent;
                 mainIntent = new Intent(LoginActivity.this, DeviceControlActivity.class);
                 startActivity(mainIntent);
                 finish();
               }

Здесь вы не обработали случай, когда status!="success".

Итак, здесь ничего не происходит, и вы остаетесь в loginActivity. Теперь, когда вы снова запускаете приложение, поскольку isFirstTime имеет значение false, вы перенаправлены на DeviceControlActivity из-за следующего блока в вашем коде.

                else{
                Intent mainIntent;
                mainIntent = new Intent(SplashActivity.this, DeviceControlActivity.class);
                startActivity(mainIntent);
                finish();
               }

Итак, в основном вам нужно обработать случай, когда status!="success", а также я бы посоветовал вам изменять значение sharedPreference только тогда, когда вы получите status=="success"

Редактировать:

Добавить блок else для if(status=="success") и показать несколько сообщений об ошибках в тосте.

И поместите следующий блок в if(status=="success"), удалите его с того места, где вы его написали.

editor.putBoolean("isFirstTime", false);
editor.commit();

Надеюсь, это поможет!

10
задан 24 December 2008 в 14:35
поделиться

3 ответа

Я не полагаю, что существует что-либо о шаблоне разработки MVC, который указывает, что должна быть одна таблица базы данных в доменном классе. На самом деле нет ничего о шаблоне разработки MVC, в котором даже говорится, что Ваша модель должна быть или должна быть сохранена в реляционной базе данных.

Это - просто стратегия что некоторые популярные платформы (Ruby on Rails - возможно, ASP.NET MVC также?) взяли, поскольку, что, кажется, польза удобства. Но это не требование MVC. Spring MVC (для мира Java) не имеет никакого свойственного понятия того, как отобразить образцовые компоненты на базу данных, на самом деле это - красота, то, что это не заботится - просто необходимо снабдить данными модели для использования, и где Вы добираетесь, это от платформы MVC не заботится о.

Так, другими словами, Вы не должны предполагать, что шаблон MVC означает, что необходимо использовать одну таблицу базы данных на образцовый компонент. Heck Вы не должны даже использовать базу данных, Ваша модель, мог произойти точно также из плоского файла или веб-сервисов (и что является большим о MVC, то, что при разработке приложения правильно Вы могли бы загрузить различные реализации слоя данных и из Вашего приложения и Представления, или Контроллер не будет даже знать).

13
ответ дан 3 December 2019 в 20:44
поделиться

Я думаю, что Вы путаете MVC с ORM. ORMS связывают Вас один с одним с Таблицами базы данных и Объектами.

То, что необходимо сделать, отправляют Объекты модели от MVC до уровня DAL, который может заполнить их для Вас от SQL-запросов и возвратить Вас объекты. Так же можно отправить, заполненные объекты с возвращается к уровню DAL, который будет сохранен.

Это - намного более чистый и гибкий дизайн, который можно использовать с шаблоном MVC, и Вы не должны связывать свои объекты с таблицами базы данных при использовании возможностей соединения SQL.

4
ответ дан 3 December 2019 в 20:44
поделиться

Хорошо Ahmad, который имеет смысл. Но во всех примерах MVC я видел, модель является чем-то вроде объединенного BLL/DAL. То, о чем Вы говорите, сохраняет Модель как чистый BLL и создает отдельный DAL. Я думал, что одна из основных функций использования существующей mvc платформы должна была ускорить разработку. Если я оказываюсь перед необходимостью создавать DAL сверху MVC, я могу также продолжить работать со своим существующим non-MVC процессом разработки создания страницы с отдельной бизнес-логикой и уровнями доступа к данным.

1
ответ дан 3 December 2019 в 20:44
поделиться
Другие вопросы по тегам:

Похожие вопросы: