Alan
What you are doing is singleton pattern, it makes sure
that there is only one instance of SqlMapClient
through out your application.

Ashish



--- Alan Chandler <[EMAIL PROTECTED]> wrote:

> On Monday 24 Oct 2005 16:50, Ashish Kulkarni wrote:
> > Hello
> > What is the best way to get SqlMapClient in a web
> > application
> > 1 , Define a singleton pattern class, and create a
> > instance of SqlMapClient to use by all classes
> which
> > need to access data.
> >
> > 2, Define a AbstractClass and put method to get
> > SqlMapClient in constructor of this class, and
> then
> > each class which needs to get data extends this
> class
> >
> >
> > 3, Create Instance of SqlMapClient in one of the
> init
> > servlets, and store this SqlMapClient in
> > ServletContext and pass it as one of the
> parameters to
> > all data classes
> >
> > 4, or any other method
> 
> I have been following this thread without really
> understanding it.  
> 
> I would be interested in any comments on what I do,
> which I think is point 1 
> (but I am new to Java and I am not sure I understand
> what a singleton is 
> properly).  In particular, I am not sure I
> understand what the potential 
> Gotcha's are.  Why doesn't everybody do it this way,
> it seems so SIMPLE.
> 
> The reason I do this is that I am attempting to
> avoid creating a session to 
> early in my application - but this has not been
> commented on in the thread at 
> all.
> 
> This is my basic class:
> 
> package uk.org.chandlerfamily.sqlmap.famtree;
> 
> import com.ibatis.common.resources.Resources;
> import com.ibatis.sqlmap.client.*;
> import java.io.Reader;
> 
> public class FamtreeMap {
>       private static final SqlMapClient sqlMap;
>       static {
>         try {
>             String resource = 
>
"uk/org/chandlerfamily/sqlmap/famtree/SqlMapConfig.xml";
>             Reader reader = Resources.getResourceAsReader
> (resource);
>             sqlMap =
> SqlMapClientBuilder.buildSqlMapClient(reader);
>          } catch (Exception e) {
>             e.printStackTrace();
>             throw new RuntimeException ("Error
> initializing DataMap class. Cause: " 
> + e);
>          }
>       }
>       public static SqlMapClient getSqlMapInstance () {
>         return sqlMap;
>       }
> 
> }
> 
> 
> 
> and then whenever I want to do something with my
> database I do
> 
>               SqlMapClient map=FamtreeMap.getSqlMapInstance();
>               try {
>                       map.startTransaction();
> ...
> ...
> 
> -- 
> Alan Chandler
> http://www.chandlerfamily.org.uk
> Open Source. It's the difference between trust and
> antitrust.
> 



                
__________________________________ 
Yahoo! FareChase: Search multiple travel sites in one click.
http://farechase.yahoo.com

Reply via email to