Использование DAO с JDBC - PullRequest
0 голосов
/ 28 ноября 2011

У меня есть архитектура, которая выглядит так: (клиент: android, сервер: веб-сервисы axis2)

Presentation layer (Android activities and controllers):
    LoginActivity.java

WebServices Layer:
    Services.java

Domain Layer:
    userManagement:
        UserManager.java
    entities (POJOS):
        User.java

Persistence:
    IDaoUser.java
    DaoUserImpl.java

Ok. Я делаю это для входа в систему:

LoginActivity.java:
    call the web service (using AsyncTask)

Services.java
    ...
    public User login(String username, String passwd) {
        return userManager.login(username, passwd);
    }

UserManager.java:
    ...
    public UserManager() {
        IDaoUser dao = new DaoUserImpl();
    }
    public User login(String username, String passwd) {
        return dao.login(username, passwd);
    }
    ...

DaoUser.java
    ...
    public User login(String username, String passwd);

DaoUserImpl.java:
    ...
    public User login(String username, String passwd) {
        /* JDBC stuff */
    }
    ...

Правильный ли этот подход? (или, по крайней мере, имеет ли это смысл?). В DaoUserImpl.java я просто проверяю, существует ли пользователь с именем пользователя и passwd, равным аргументам (опять же, я не знаю, правильный ли этот подход). Спасибо.

1 Ответ

1 голос
/ 28 ноября 2011

В общем, похоже, что вы на трассе.Предлагаются два дополнительных улучшения:

  1. попытайтесь выяснить, можете ли вы сделать это с меньшим количеством слоев на стороне сервера - возможно, вы могли бы перейти прямо от службы к DAO без отдельного объекта Manager.Возможно, вам также не понадобится отдельный интерфейс / реализация DAO, если вы не планируете иметь несколько реализаций.

  2. рассмотрите REST-сервисы вместо SOAP и JAX-RS вместо Axis.У REST меньше затрат на транспорт / конверт, поэтому он может работать лучше для вас в мобильном приложении.

См .: [iPhone и веб-службы]: REST против SOAP

...