Avatar billede j-hansen Nybegynder
10. juni 2002 - 15:42 Der er 3 kommentarer og
1 løsning

kode-kommentar

Er der nogen som vil være mig behjælpelig med kommentar af denne kode, det er specilt dette med mapper jeg gerne vil have noget svar på

private HashMap mappers;
   
    private PersistensFacade() throws SQLException, ClassNotFoundException
    {
        createHashMap();
    }

    private void createHashMap() throws SQLException, ClassNotFoundException
    {
        mappers = new HashMap();
        IMapper mapper;
            mapper = new OrdreMapper();
            mappers.put(Class.forName("dk.jes1.domain.Ordre"), mapper);
            mapper = new VareOrdreMapper();
            mappers.put(Class.forName("dk.jes1.domain.VareOrdre"), mapper);
            mapper = new VareMapper();
            mappers.put(Class.forName("dk.jes1.domain.Vare"), mapper);
    }
   
    public static PersistensFacade getInstance()
    {
    try
    {
        if (instance == null)
        {
            instance = new PersistensFacade();
        }
        return instance;
    }
    catch(Exception e){return null;}
    }

 
    public boolean insert(int oId, Object obj, boolean delAfTransaction)
    {
        try
        {
        IMapper mapper = (IMapper)mappers.get(obj.getClass());
        mapper.put(oId, obj, delAfTransaction);
        return true; // returner true hvis insert er udført korrekt
        }
        catch(Exception e){return false;} // returner false hvis insert ikke er udført korrekt
    }

    public Object select(int oId, Object obj, boolean delAfTransaction)
    {
        try
        {
        IMapper mapper = (IMapper)mappers.get(obj.getClass());
        return mapper.get(oId, delAfTransaction);
        }
        catch(Exception e){return null;}
    }


    public Object selectAll(Object obj)
    {
        try
        {
        IMapper mapper = (IMapper)mappers.get(obj.getClass());
        return mapper.getAll();
        }
        catch(Exception e){return null;}
    }

    public Object selectAllWhere(String searchValue, Object obj, boolean delAfTransaction)
    {
        try
        {
        IMapper mapper = (IMapper)mappers.get(obj.getClass());
        return mapper.getAllWhere(searchValue, delAfTransaction);
        }
        catch(Exception e){return null;}
    }
   
Avatar billede disky Nybegynder
10. juni 2002 - 17:00 #1
Dine metoder, specielt getInstance() skal være synchronized ellers kan du ende op med mærkelige fejl, hvis du kører multitrådet.

Ellers ser det fint ud.

Hvad er det du prøver på med den HashMap hvor du laver dynamisk classloading og smider det in på din map ?
Avatar billede j-hansen Nybegynder
10. juni 2002 - 19:04 #2
Disky
IMapper mapper = (IMapper)mappers.get(obj.getClass());jeg ved ikke disse linie hvorfor er der mapper i ()Jeg er i tvivl om hved nedenstående kode gør, kan du fortælle mig det :-)

synchronized har jeg ovenover i ordrecontainer, samt nedenunder i persistensfacaden. Ofte er jeg i tvivl om hvor det er bedst at lægge det.



 
    public boolean insert(int oId, Object obj, boolean delAfTransaction)
    {
        try
        {
        IMapper mapper = (IMapper)mappers.get(obj.getClass());
        mapper.put(oId, obj, delAfTransaction);
        return true; // returner true hvis insert er udført korrekt
        }
        catch(Exception e){return false;} // returner false hvis insert ikke er udført korrekt
    }
Avatar billede j-hansen Nybegynder
10. juni 2002 - 19:07 #3
Jeg ikke hvad dynamisk classloading står for, men betyder det at at hashmappen ikke vil blive ved med at putte nummer på hinanden.
Avatar billede disky Nybegynder
10. juni 2002 - 21:33 #4
IMapper mapper = (IMapper)mappers.get(obj.getClass());jeg ved ikke disse linie

betyder:

du henter et object fra din hashmap, med en noegle der er typen af det object du kigger pa (obj).
det object du faar typecaster du saa til et IMapper object, som du gemmer i 'mapper'
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