Создание приложения адресной книги с использованием JAVA - PullRequest
2 голосов
/ 14 ноября 2011

Я новичок в Java и собираюсь создать клиентскую программу для небольшой адресной книги с использованием Java Swing.

И моя цель - реализовать 3-уровневую архитектуру.(Нет запросов sql в клиентской программе)

Каков наилучший подход для этого?

Я думал (Java EE) - (XML или JSON) - (MySQL) будетодин, но не слишком ли это сложно для новичка?:)

Что еще может быть?

Спасибо, что прочитали мой вопрос!

Ответы [ 3 ]

1 голос
/ 14 ноября 2011

Java EE содержит множество технологий, которые могут упростить создание приложений такого типа:

  • EJB - Используйте сессионный компонент для создания приложения.
  • JAX-RS - Представьте ваш сессионный компонент как службу RESTful через сообщения XML и JSON.
  • 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();
    }

}

Для полного примера

1 голос
/ 14 ноября 2011

Зависит от того, что вы подразумеваете под Java EE (J2EE - это винтажная терминология 1999 года - пожалуйста, опустите «2»)

Вы можете написать веб-адресную книгу, используя сервлеты и JSP. Если вам нужна реляционная база данных, вы можете использовать JDBC, но без этого можно обойтись.

Вы должны сделать свой уровень доступа к данным интерфейсным. Это позволит вам изменить реализацию, не затрагивая клиентов.

Ваш пользовательский интерфейс будет JSP. У вас будет сервлет фронт-контроллера, который будет принимать запросы, выяснять, как их обрабатывать, и отправлять ответ на следующее представление.

0 голосов
/ 14 ноября 2011

Вы говорите, что вы новичок в Java, ответ на вашу дилемму IMO зависит от вашего опыта работы с другими языками (и программирования в целом). В веб-приложении много слоев, что означает, что многие вещи могут пойти не так, поэтому я думаю, что лучше начать с простых вещей и продолжить свой путь. ТАК ... Я бы порекомендовал не увлекаться XML, JSON, MVC и т. Д. В вашем первом приложении. Вы по-прежнему можете написать отличное приложение и многому научиться, оставив его на более низком уровне, например, используя JSP-страницы, использующие JavaBeans, и позволяя бинам обрабатывать SQL и т. Д.

Вы можете (и должны) двигаться дальше с AJAX, архитектурами MVC и т. Д.

...