Java Desktop Application - dodawanie, modyfikowanie, usuwanie rekordów w bazie danych

0

Witam,

Poszukuję prostego projektu lub namiaru jak zrobić prosty interface zarządzający bazą danych. Chodzi głownie aby dodać rekord, ewentualnie modyfikować lub usunąć. Nic więcej... Docelowo trafi to do mojej aplikacji, która rysuje wykresy na podstawie danych z bazy. Tworzę aplikację (Java Desktop Application) w NetBeans. Z góry dziękuję za pomoc.

0

Posłużyłem się gotowcem od NetBeansa ( Java Desktop Application > Database application). Stworzyłem połączenie i wybrałem odpowiednią tabele i rekordy. Zrobiłem test czy wyświetlają mi się wartości rekordów (Services/Databases....) i wszystko ładnie wyświetla. Ale po uruchomieniu aplikacji otrzymuję błąd. W czym tkwi problem ?

Error:

run:
2014-05-06 10:19:34 org.jdesktop.application.Application$1 run
SEVERE: Application class desktopapplication1.DesktopApplication1 failed to launch
javax.persistence.PersistenceException: No Persistence provider for EntityManager named jdbc:oracle:thin:@localhost:1521:XEPU:  The following providers:
oracle.toplink.essentials.PersistenceProvider
oracle.toplink.essentials.ejb.cmp3.EntityManagerFactoryProvider
Returned null to createEntityManagerFactory.

        at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:154)
        at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:83)
        at desktopapplication1.DesktopApplication1View.initComponents(DesktopApplication1View.java:285)
        at desktopapplication1.DesktopApplication1View.<init>(DesktopApplication1View.java:36)
        at desktopapplication1.DesktopApplication1.startup(DesktopApplication1.java:19)
        at org.jdesktop.application.Application$1.run(Application.java:171)
        at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)
        at java.awt.EventQueue.dispatchEvent(EventQueue.java:597)
        at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:273)
        at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:183)
        at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:173)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:168)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:160)
        at java.awt.EventDispatchThread.run(EventDispatchThread.java:121)
Exception in thread "AWT-EventQueue-0" java.lang.Error: Application class desktopapplication1.DesktopApplication1 failed to launch
        at org.jdesktop.application.Application$1.run(Application.java:177)
        at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)
        at java.awt.EventQueue.dispatchEvent(EventQueue.java:597)
        at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:273)
        at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:183)
        at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:173)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:168)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:160)
        at java.awt.EventDispatchThread.run(EventDispatchThread.java:121)
Caused by: javax.persistence.PersistenceException: No Persistence provider for EntityManager named jdbc:oracle:thin:@localhost:1521:XEPU:  The following providers:
oracle.toplink.essentials.PersistenceProvider
oracle.toplink.essentials.ejb.cmp3.EntityManagerFactoryProvider
Returned null to createEntityManagerFactory.

        at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:154)
        at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:83)
        at desktopapplication1.DesktopApplication1View.initComponents(DesktopApplication1View.java:285)
        at desktopapplication1.DesktopApplication1View.<init>(DesktopApplication1View.java:36)
        at desktopapplication1.DesktopApplication1.startup(DesktopApplication1.java:19)
        at org.jdesktop.application.Application$1.run(Application.java:171)
        ... 8 more
BUILD SUCCESSFUL (total time: 6 seconds)
 
 /*
public class DesktopApplication1View extends FrameView {
    
    public DesktopApplication1View(SingleFrameApplication app) {
        super(app);

        initComponents();

        // status bar initialization - message timeout, idle icon and busy animation, etc
        ResourceMap resourceMap = getResourceMap();

        /*śmieci*/
        org.jdesktop.application.ResourceMap resourceMap = org.jdesktop.application.Application.getInstance(desktopapplication1.DesktopApplication1.class).getContext().getResourceMap(DesktopApplication1View.class);
        entityManager = java.beans.Beans.isDesignTime() ? null : javax.persistence.Persistence.createEntityManagerFactory(resourceMap.getString("entityManager.persistenceUnit")).createEntityManager(); // NOI18N
        query = java.beans.Beans.isDesignTime() ? null : entityManager.createQuery(resourceMap.getString("query.query")); // NOI18N
        list = java.beans.Beans.isDesignTime() ? java.util.Collections.emptyList() : org.jdesktop.observablecollections.ObservableCollections.observableList(query.getResultList());


    private javax.persistence.EntityManager entityManager;
}
}
0

A czy na pewno masz dodanego jakiegoś providera JPA do tego projektu? Czy na pewno masz odpowiednio skonfigurowane to JPA? Bo jak widzisz z gotowców też trzeba umieć skorzystać...

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