Avatar billede elites Nybegynder
02. maj 2002 - 11:27 Der er 6 kommentarer og
1 løsning

Bean Managed og Container Managed bønder

Kunne godt tænke mig at vide hvad de 2 begreber betyder og hvad forskellen er i praksis...

Det mest fyldestgørrende svar får points!!
Avatar billede r9 Nybegynder
02. maj 2002 - 11:39 #2
Ved BMP, skal du selv skrive database forbindelse i din entitybønne, og du skal selv skrive alle sql-sætningerne i entitybønne. (altså i koden)

Ved CMP, håndterer containeren alt hvad der angår databasen.
Dvs, den sørger for database-forbindelse, og for ALT sql.
Dette skal selvfølige defineres et sted, og det gør man i deployment descriptoren. Enten manuelt, eller via et værktøj.

Ved CMP kan man altså ikke se noget database kode eller SQL i selve koden.
Avatar billede r9 Nybegynder
02. maj 2002 - 11:45 #3
Personligt synes jeg at CMP er meget lettere og hurtigere at arbejde med.

Hvis man f.eks. skal selecte eller oprette i databasen, kalder man bare settere og gettere på Remote interfacetet.

F.eks.

import java.rmi.*;
import javax.ejb.*;
import java.sql.*;

public interface User extends EJBObject
{
  public int getId() throws RemoteException;
  public void setId(int id) throws RemoteException;
  public String getPassword() throws RemoteException;
  public void setPassword(String password) throws RemoteException;
  public String getUsername() throws RemoteException;
  public String getDisplayname() throws RemoteException;
  public void setDisplayname(String displayname) throws RemoteException;
  public Integer getRole() throws RemoteException;
  public void setRole(Integer role) throws RemoteException;
  public Timestamp getCreated() throws RemoteException;
  public void setCreated(Timestamp created) throws RemoteException;
  public String getRealname() throws RemoteException;
  public void setRealname(String realname) throws RemoteException;
  public Integer getActive() throws RemoteException;
  public void setActive(Integer active) throws RemoteException;

}
Avatar billede r9 Nybegynder
02. maj 2002 - 12:03 #4
Her er et uddrag fra en BMP-bønne.
Som du kan se, så skal man lave en masse databasekode og SQL i selve bønnen.


    public String ejbCreate(String code, String name, String email)
      throws CreateException, RemoteException
    {
       
   
      this.name = name;
      this.code = code;
      this.email = email;
     
      System.out.println("sampleBMPBean.ejbCreate(): " + code + " " + name + " " + email);
      try {
        databaseConn = getDatabaseConnection(DATA_SOURCE_NAME);
        prepStatement = databaseConn.prepareStatement(BMP_INSERT_STATEMENT);
        prepStatement.setString(1, code);
        prepStatement.setString(2, name);
        prepStatement.setString(3, email);
        prepStatement.executeUpdate();
        dirty = false;
        return code;
       
      } catch (SQLException sqlE) {
          try {
            ejbFindByPrimaryKey(this.code);
            throw new javax.ejb.DuplicateKeyException("key: " + code );
          } catch ( Exception ig1 ) {
            // ignore exception
          }
         
          try {
          String w = databaseConn.getWarnings().toString();
          throw new CreateException("Error Creating Bean:" + sqlE.getMessage() + " SQL Warnings" + w );
        } catch (Exception ig2) {}
       
      } finally {
        try { prepStatement.close();} catch (Exception e) {}
        try { databaseConn.close(); } catch (Exception e) {}
      }
      return code;
    }
Avatar billede r9 Nybegynder
02. maj 2002 - 12:05 #5
På dette link: http://www.theserverside.com/resources/ejb_review.jsp

kan du gratis hente Mastering EJB i PDF format.
Avatar billede disky Nybegynder
02. maj 2002 - 12:21 #6
CMP er klart det nemmeste, men BMP bruger man hvis man skal have 100% kontrol med hvad der sker.
Avatar billede elites Nybegynder
02. maj 2002 - 12:24 #7
Tak.. r9 kigger lidt på... Det kan godt være jeg har brug for lidt mere inf.

Men tak indtil videre!!
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester