【问题标题】:Using DAO with JDBC将 DAO 与 JDBC 一起使用
【发布时间】:2011-11-27 23:56:27
【问题描述】:

我的架构如下所示: (客户端:android,服务器:web servicesaxis2)

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 中,我只是检查是否存在用户名和密码等于参数的用户(同样,我不知道这种方法是否正确)。 谢谢。

【问题讨论】:

    标签: architecture jdbc dao


    【解决方案1】:

    一般来说,您看起来就像在正轨上。建议进行两项增量改进:

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

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

    见: [iPhone and Web Services]: REST vs SOAP

    【讨论】:

    • 谢谢。是的,我也认为我有太多层,但我想随着系统的增长,我会需要它们。我对 REST 不是很熟悉,但我会考虑。
    • 此外,我使用的是 SOAP 而不是 REST,因为目前我不需要解析任何 XML(使用 ksoap2),我想使用 REST 我需要解析响应。
    猜你喜欢
    • 1970-01-01
    • 2018-10-01
    • 1970-01-01
    • 2011-06-27
    • 1970-01-01
    • 2022-06-23
    • 1970-01-01
    • 2021-03-25
    • 1970-01-01
    相关资源
    最近更新 更多