Architecture 在JDBC中使用DAO

Architecture 在JDBC中使用DAO,architecture,jdbc,dao,Architecture,Jdbc,Dao,我的体系结构如下所示: (客户端:android,服务器:web服务axis2) 嗯。我这样做是为了执行登录: LoginActivity.java: call the web service (using AsyncTask) Services.java ... public User login(String username, String passwd) { return userManager.login(username, passwd);

我的体系结构如下所示: (客户端:android,服务器:web服务axis2)

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

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等于参数的用户(同样,我不知道这种方法是否正确)。
谢谢。

总的来说,看起来你已经步入正轨了。建议进行两项渐进式改进:

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

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

  • 见:

    谢谢。是的,我也认为我有太多的层,但我认为随着系统的发展,我将需要它们。我不太熟悉REST,但我会考虑它。此外,我使用SOAP代替REST,因为目前我不需要解析任何XML(用KSOAP2),我想用REST我需要解析这些响应。
    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 */
        }
        ...