2

私は Java の初心者で、Java Swing を使用して小さなアドレス帳クライアント プログラムを作成しようとしています。

そして、私の目標は 3 層アーキテクチャを実装することです。(クライアント プログラムに SQL クエリはありません)

これには何が最善のアプローチでしょうか?

(Java EE)--(XML or JSON)--(MySQL)だと思っていたのですが、初心者には難しすぎませんか?:)

他に何がありますか?

私の質問を読んでくれてありがとう!

4

3 に答える 3

1

Java EE の意味によって異なります (J2EE は 1999 年の古い用語です。「2」を削除してください。)

サーブレットと JSP を使用して、Web ベースのアドレス帳を作成できます。リレーショナル データベースが必要な場合は JDBC を使用できますが、JDBC を使用しなくてもかまいません。

データ アクセス レイヤーをインターフェイス ベースにする必要があります。これにより、クライアントに影響を与えることなく実装を変更できます。

UI は JSP になります。リクエストを受け取り、それらを処理する方法を見つけて、次のビューに応答を送信するフロント コントローラー サーブレットが作成されます。

于 2011-11-14T00:32:43.633 に答える
1

Java EEには、このタイプのアプリケーションの構築を容易にする多くのテクノロジーが含まれています。

  • EJB - セッション Bean を使用してアプリケーションを作成します。
  • JAX-RS - セッション Bean を XML および JSON メッセージを介して RESTful サービスとして公開します.
  • JAXB - モデル オブジェクトと XML および JSON との間の変換を処理します
  • JPA - JDBC コードを記述せずにモデル オブジェクトをデータベースに格納する処理を行います

これが多くのように聞こえる場合は、記述する必要があるコードがどれだけ少ないかを見てください。

package org.example;

import java.util.List;

import javax.ejb.*;
import javax.persistence.*;
import javax.ws.rs.*;
import javax.ws.rs.core.MediaType;

@Stateless
@LocalBean
@Path("/customers")
public class CustomerService {

    @PersistenceContext(unitName="CustomerService",
                        type=PersistenceContextType.TRANSACTION)
    EntityManager entityManager;

    @POST
    @Consumes({MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON})
    public void create(Customer customer) {
        entityManager.persist(customer);
    }

    @GET
    @Produces({MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON})
    @Path("{id}")
    public Customer read(@PathParam("id") long id) {
        return entityManager.find(Customer.class, id);
    }

    @PUT
    @Consumes({MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON})
    public void update(Customer customer) {
        entityManager.merge(customer);
    }

    @DELETE
    @Path("{id}")
    public void delete(@PathParam("id") long id) {
        Customer customer = read(id);
        if(null != customer) {
            entityManager.remove(customer);
        }
    }

    @GET
    @Produces({MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON})
    @Path("findCustomersByCity/{city}")
    public List<Customer> findCustomersByCity(@PathParam("city") String city) {
        Query query = entityManager.createNamedQuery("findCustomersByCity");
        query.setParameter("city", city);
        return query.getResultList();
    }

}

完全な例について

于 2011-11-14T11:16:22.543 に答える
0

あなたは Java の初心者だと言いますが、あなたのジレンマ IMO に対する答えは、他の言語 (およびプログラミング全般) の経験によって異なります。Web アプリケーションには多くのレイヤーがあり、多くのことがうまくいかない可能性があることを意味します。SO ... 最初のアプリで XML、JSON、MVC などに夢中にならないことをお勧めします。JavaBeans を使用する JSP ページを使用したり、Bean に SQL を処理させたりするなど、少しローテクなままにしておくことで、優れたアプリケーションを作成し、多くのことを学ぶことができます。

そこから、AJAX、MVC アーキテクチャなどを使用して先に進むことができます (またそうする必要があります)。

于 2011-11-14T01:24:54.777 に答える