私は Java の初心者で、Java Swing を使用して小さなアドレス帳クライアント プログラムを作成しようとしています。
そして、私の目標は 3 層アーキテクチャを実装することです。(クライアント プログラムに SQL クエリはありません)
これには何が最善のアプローチでしょうか?
(Java EE)--(XML or JSON)--(MySQL)だと思っていたのですが、初心者には難しすぎませんか?:)
他に何がありますか?
私の質問を読んでくれてありがとう!
私は Java の初心者で、Java Swing を使用して小さなアドレス帳クライアント プログラムを作成しようとしています。
そして、私の目標は 3 層アーキテクチャを実装することです。(クライアント プログラムに SQL クエリはありません)
これには何が最善のアプローチでしょうか?
(Java EE)--(XML or JSON)--(MySQL)だと思っていたのですが、初心者には難しすぎませんか?:)
他に何がありますか?
私の質問を読んでくれてありがとう!
Java EE の意味によって異なります (J2EE は 1999 年の古い用語です。「2」を削除してください。)
サーブレットと JSP を使用して、Web ベースのアドレス帳を作成できます。リレーショナル データベースが必要な場合は JDBC を使用できますが、JDBC を使用しなくてもかまいません。
データ アクセス レイヤーをインターフェイス ベースにする必要があります。これにより、クライアントに影響を与えることなく実装を変更できます。
UI は JSP になります。リクエストを受け取り、それらを処理する方法を見つけて、次のビューに応答を送信するフロント コントローラー サーブレットが作成されます。
Java EEには、このタイプのアプリケーションの構築を容易にする多くのテクノロジーが含まれています。
これが多くのように聞こえる場合は、記述する必要があるコードがどれだけ少ないかを見てください。
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();
}
}
完全な例について
あなたは Java の初心者だと言いますが、あなたのジレンマ IMO に対する答えは、他の言語 (およびプログラミング全般) の経験によって異なります。Web アプリケーションには多くのレイヤーがあり、多くのことがうまくいかない可能性があることを意味します。SO ... 最初のアプリで XML、JSON、MVC などに夢中にならないことをお勧めします。JavaBeans を使用する JSP ページを使用したり、Bean に SQL を処理させたりするなど、少しローテクなままにしておくことで、優れたアプリケーションを作成し、多くのことを学ぶことができます。
そこから、AJAX、MVC アーキテクチャなどを使用して先に進むことができます (またそうする必要があります)。