将DAO与JDBC结合使用

时间:2011-11-27 23:56:28

标签: architecture jdbc dao

我的架构看起来像这样: (客户端:android,服务器:web服务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

确定。我这样做是为了执行登录:

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 个答案:

答案 0 :(得分:1)

一般情况下,你看起来像是在赛道上。两个渐进的改进建议:

  1. 尝试查看您是否可以在服务器端使用更少的层 - 也许您可以直接从服务转到DAO,而无需单独的Manager对象。除非您计划进行多次实施,否则您可能也不需要单独的DAO接口/实现。

  2. 考虑使用REST服务而不是SOAP和JAX-RS而不是Axis。 REST具有较少的传输/信封开销,因此在移动应用程序中它可能更适合您。

  3. 请参阅: [iPhone and Web Services]: REST vs SOAP