generatory aplikacji

0

Witam!

Mam następujące zadanie do wykonania w NetBeansie:

Utworzyć aplikację w jezyku Java umożliwiającą wprowadzanie Zleceń i produktów przynależących do danych zleceń. Aplikację oprzeć o dwie tabele np. JTable i przygotowane modele danych (obiekty klasy TableModel lub dziedziczące po nich).
Aplikacja powinna umożliwiać podstawowe operacje CRUD (utwórz, odczytaj, aktualizuj i usuń)

Nie mam zielonego pojęcia jak się za to zabrać.
Będę bardzo wdzięczna za wszelką pomoc.

Pozdrawiam
Gosia

0

Może zacznij od przeczytania tego:
http://platform.netbeans.org/tutorials/nbm-crud.html
To jest chyba dokładnie to, co masz zrobić. A jak już przeczytasz, to może uda ci się zadać bardziej precyzyjne (konkretne) pytania.

//EDIT: Aktualizacja linka do nowszego tutka.

0

Znalazłam taki tutorial:
http://www.jaceklaskowski.pl/wiki/Tworzenie_aplikacji_desktopowej_z_Java_Desktop_Application_w_NetBeans_IDE_6.1

Moja aplikacja ma być praktycznie taka sama jak ta przedstawiona w tutorialu, więc wykonałam jego kolejne kroki. Mój problem polega na tym, że nie tworzą się tabele bazy danych (w zakładce Services w Databases jest wprawdzie moja baza danych, ale nie zawiera żadnych tabel).

W przykładzie autora są dwie tabele: Pacjent oraz Wizyta. U mnie zamiast nich są Zlecenie i Produkt.

Oto kod z którego ma się wygenerować tabela Zlecenie:

package model;
import java.io.Serializable;
import java.util.List;

public class Zlecenie implements Serializable {

    private static final long serialVersionUID = 1L;
    private String nazwa;
    private String firma_zlecajaca;
    private String wykonawca;
    private Double wartosc_zlecenia;
    private Integer liczba_dni_na_wykonanie_zlecenia;

    private List<Produkt> produkty;

public Zlecenie(String nazwa, String firma_zlecajaca, Integer liczba_dni_na_wykonanie_zlecenia, String wykonawca, Double wartosc_zlecenia)
    {
        this.nazwa=nazwa;
        this.firma_zlecajaca=firma_zlecajaca;
        this.liczba_dni_na_wykonanie_zlecenia=liczba_dni_na_wykonanie_zlecenia;
        this.wykonawca=wykonawca;
        this.wartosc_zlecenia=wartosc_zlecenia;
    }

    public List<Produkt> getProdukty() {
        return produkty;
    }

    public void setProdukty(List<Produkt> produkty) {
        this.produkty = produkty;
    }
    
    public String getNazwa() {
        return nazwa;
    }

    public void setNazwa(String nazwa) {
        this.nazwa = nazwa;
    }
        
    public String getFirma_zlecajaca() {
        return firma_zlecajaca;
    }

    public void setFirma_zlecajaca(String firma_zlecajaca) {
        this.firma_zlecajaca = firma_zlecajaca;
    }
    
    public String getWykonawca() {
        return wykonawca;
    }

    public void setWykonawca(String wykonawca) {
        this.wykonawca = wykonawca;
    }
    
    public Double getWartosc_zlecenia() {
        return wartosc_zlecenia;
    }

    public void setWartosc_zlecenie(Double wartosc_zlecenia) {
        this.wartosc_zlecenia = wartosc_zlecenia;
    }
    
    public Integer getLiczba_dni_na_wykonanie_zlecenia() {
        return liczba_dni_na_wykonanie_zlecenia;
    }

    public void setLiczba_dni_na_wykonanie_zlecenia(Integer liczba_dni_na_wykonanie_zlecenia) {
        this.liczba_dni_na_wykonanie_zlecenia = liczba_dni_na_wykonanie_zlecenia;}
    
    @Override
    public int hashCode() {
        int hash = 0;
        hash += (nazwa != null ? nazwa.hashCode() : 0);
        return hash;
    }

    @Override
    public boolean equals(Object object) {
        // TODO: Warning - this method won't work in the case the id fields are not set
        if (!(object instanceof Zlecenie)) {
            return false;
        }
        Zlecenie other = (Zlecenie) object;
        if ((this.nazwa == null && other.nazwa != null) || (this.nazwa != null && !this.nazwa.equals(other.nazwa))) {
            return false;
        }
        return true;
    }

    @Override
    public String toString() {
        return "Zlecenie[id=" + nazwa + "]";
    }
    
} 

Zaznaczę przy tym, że nie wiem po co jest zapis: private static final long serialVersionUID = 1L;
Tak samo nie rozumiem przeznaczenia trzech ostatnich metod.

Produkt:

package model;
import java.io.Serializable;
import java.util.Date;

public class Produkt implements Serializable {

    private static final long serialVersionUID = 1L;
    private Long id;
    private String nazwa;
    private String kraj_produkcji;
    private Date data_produkcji;
    private Date data_waznosci;
    private double waga_w_kg;
    
    private Zlecenie zlecenie;
    
    public Zlecenie getZlecenie() {
        return zlecenie;
    }

    public void setZlecenie(Zlecenie zlecenie) {
        this.zlecenie = zlecenie;
    }
    
    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public String getNazwa() {
        return nazwa;
    }

    public void setNazwa(String nazwa) {
        this.nazwa = nazwa;
    }
    
    public String getKraj_produkcji() {
        return kraj_produkcji;
    }

    public void setKraj_produkcji(String kraj_produkcji) {
        this.kraj_produkcji = kraj_produkcji;
    }
    
    public Date getData_produkcji() {
        return data_produkcji;
    }

    public void setData_produkcji(Date data_produkcji) {
        this.data_produkcji = data_produkcji;
    }
    
    public Date getData_waznosci() {
        return data_waznosci;}
    
    public void setData_waznosci(Date data_waznosci) {
        this.data_waznosci = data_waznosci;
    }
    
    public double getWaga_w_kg() {
        return waga_w_kg;
    }

    public void setWaga_w_kg(double waga_w_kg) {
        this.waga_w_kg = waga_w_kg;
    }
    
    @Override
    public int hashCode() {
        int hash = 0;
        hash += (id != null ? id.hashCode() : 0);
        return hash;
    }

    @Override
    public boolean equals(Object object) {
        // TODO: Warning - this method won't work in the case the id fields are not set
        if (!(object instanceof Produkt)) {
            return false;
        }
        Produkt other = (Produkt) object;
        if ((this.id == null && other.id != null) || (this.id != null && !this.id.equals(other.id))) {
            return false;
        }
        return true;
    }

    @Override
    public String toString() {
        return "Produkt[id=" + id + "]";
    }
    
} 

Powyższe klasy wchodzą w skład projektu model.
3 poniżej zawierają się w projekcie generatortabel.

persistance.xml:

<?xml version="1.0" encoding="UTF-8"?>
<persistence version="1.0" 
  xmlns="http://java.sun.com/xml/ns/persistence" 
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd">
  <persistence-unit name="generatory-derbyPU" transaction-type="RESOURCE_LOCAL">
    <provider>oracle.toplink.essentials.PersistenceProvider</provider>
    <class>model.Zlecenie</class>
    <class>model.Produkt</class>
    <properties>
      <property name="toplink.jdbc.url" value="jdbc:derby:c:/temp/generatory-derby;create=true"/>
      <property name="toplink.jdbc.driver" value="org.apache.derby.jdbc.EmbeddedDriver"/>
      <property name="toplink.ddl-generation" value="drop-and-create-tables"/>
    </properties>
  </persistence-unit>
</persistence>
 

orm.xml:

<?xml version="1.0" encoding="UTF-8" ?>
<entity-mappings xmlns="http://java.sun.com/xml/ns/persistence/orm"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://java.sun.com/xml/ns/persistence/orm http://java.sun.com/xml/ns/persistence/orm_1_0.xsd"
  version="1.0">
    <description>Generatory</description>
    <package>model</package>
    <entity class="Zlecenie" name="Zlecenie" metadata-complete="false">
        <description>Encja Zlecenie</description>
        <named-query name="znajdzZleceniePoNazwie">
            <query>SELECT p FROM Zlecenie p WHERE p.nazwa LIKE :nazwa</query>
        </named-query>
        <attributes>
            <id name="nazwa" />
            <one-to-many name="produkty" mapped-by="zlecenie">
                <cascade>
                    <cascade-all />
                </cascade>
            </one-to-many>
        </attributes>
    </entity>
    <entity class="Produkt" name="Produkt" metadata-complete="false">
        <description>Encja Produkt</description>
        <attributes>
            <id name="id">
                <generated-value generator="AUTO"/>
            </id>
            <basic name="data_waznosci">
                <temporal>DATE</temporal>
            </basic>
            <many-to-one name="zlecenie" />
        </attributes>
    </entity>
</entity-mappings>
 
package generatortabel;
import model.Zlecenie;
import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.Persistence;

public class Generator {

     public static void main(String[] args) {
        new Generator().persist(new Zlecenie("Zakupy_listopadowe","Uwimex",10,"Sonex",55424.25)); //*****************
    }

    public void persist(Object object) {
        EntityManagerFactory emf = Persistence.createEntityManagerFactory("generatory-derbyPU"); //*****************
        EntityManager em = emf.createEntityManager();
        em.getTransaction().begin();
        try {
            em.persist(object);
            em.getTransaction().commit();
        } catch (Exception e) {
            e.printStackTrace();
            em.getTransaction().rollback();
        } finally {
            em.close();
        }
    }
  
}
 

Gdy chcę to skompilować wywala mi błędy przy linijkach oznaczonych gwiazdkami. Dlaczego? Przecież to praktycznie to samo co w tutorialu.
Jakby chciało się komuś to przeanalizować, to będę wdzięczna.

Pozdrawiam

0

Jaką masz Javę? Pakiet javax.persistence jest częścią Java EE, a nie Java SE.

1 użytkowników online, w tym zalogowanych: 0, gości: 1