Columns in JTable über CMP EJB füllen/bestimmen

Hallo,

ich bin noch nicht so gut im programmieren daher bitte ich euch nicht zu viel vorauszusetzen.

Ich habe eine Tabelle "Mitglieder" mit den Feldern Name (PK), Nachname(PK), Straße, Ort, Festnetz, Mobil, Mail, Status in einer Oracle Datenbank.

Mittels eines SwingClient möchte ich diese nun auslesen und ändern können. Im Client habe ich nun mittels JTable mir die Tabelle erzeugt.
Im moment ist die Tablle statisch. Wie mache ich das, das ich je nach dem wieviel Mitglieder da sind die Tabellenlänge ändert. Und vor allem wie komme ich an den Inhalt der Felder ran.
Ich benutze Sun One Studio 4 war mir viel arbeit abnimmt. Ich weiß allerdings nicht wo ich das bestimmen kann das Feld1 der Tabelle = Name der Datenbank ist.

Das ganze muss von der Serverseite gelöst werden.
 
Ich merke das ich mich etwas falsch ausgedrückt habe.

Ich möchte genau gesagt in der EJB mit einer Finder Methode oder Select Methode (keine Ahnung welche), alle möglichen Zeilen ausgeben haben.

Mit der EJBQL kenne ich mich auch net so aus, da das für mich alles Neuland ist.
 
Hallo!

Bsp:
Das wäre ejbql-Query um alle Datensätze des Typs PersonBean zu bekommen:
Code:
findAllPersons:
SELECT OBJECT(p) FROM PersonBean p

Wenn du dir zu deinem Bean eun Remote und ein Home Interface generieren lässt ganz du ganz einfach am Home diese "speziellen" finder (in zusammenarbeit mit dem ejb-jar.xml) und create Methoden spezifzieren.

Darauf hin kannst du über den Client einen JNDI Lookup auf's Home machen und dort dann etwa create bzw. deine finder aufrufen:

Bsp.: für JBoss 4.x:

Code:
/*
 * Created on 05.02.2005@14:21:37
 *
 * TODO Licence info
 */
package de.tutorials.ejb.client;

import java.util.Collection;
import java.util.Date;
import java.util.Hashtable;
import java.util.Iterator;

import javax.naming.InitialContext;
import javax.rmi.PortableRemoteObject;

import de.tutorials.ejb.PersonBeanHome;
import de.tutorials.interfaces.PersonBean;

/**
 * @author Administrator
 *
 * TODO Explain me
 */
public class EjbClient {

    public static void main(String[] args) throws Exception {
        Hashtable ht = new Hashtable();
        ht.put("java.naming.factory.initial",
                "org.jnp.interfaces.NamingContextFactory");
        ht.put("java.naming.factory.url.pkgs",
                "org.jboss.naming:org.jnp.interfaces");
        ht.put("java.naming.provider.url", "jnp://localhost:1099");

        InitialContext ctx = new InitialContext(ht);

        PersonBeanHome home = (PersonBeanHome) PortableRemoteObject.narrow(ctx
                .lookup("java:ejb/PersonBean"), PersonBeanHome.class);
        //
        PersonBean person = home.create(Integer.valueOf(2));
        person.setName("Richard");
        person.setDob(new Date());

        Collection c = home.findAllPersons();
        for (Iterator iter = c.iterator(); iter.hasNext();) {
            PersonBean element = (PersonBean) iter.next();
            System.out.println(element.getName());
        }

        ctx.close();
    }
}

Normalerweise verwendet man jedoch keine Remote EntityBeans sondern nur Local EntityBeans auf die man dann mittels SessionBeans zugreift, genauer gesagt greift der Client über das Remote-Interface der SessionBean auf diese zu.... Diese SessionBeans führen dann die passenden Aktionen mit den EntityBeans aus und liefern dann ihre Ergebnisse in Form von ValueObjects zum Client.

Gruß Tom
 
Zuletzt bearbeitet:
Herzlichen Dank. Hast mir sehr geholfen. Sorry das ich mich so spät bedanke aber ich musste es erstmal umsetzen.

Das war es

PHP:
findAllPersons():
SELECT OBJECT(p) FROM PersonBean p
 

Neue Beiträge

Zurück