I have changed my class:
public class QueryManager {
private static QueryManager queryManager = null;
private QueryRunner queryRunner = null;
private QueryManager() {
try {
queryRunner = new QueryRunner(DataSourceSingleton.getInstance()
.getDataSource());
} catch (Exception e) {
}
}
public static QueryManager getInstance() {
if (queryManager == null) {
queryManager = new QueryManager();
}
return queryManager;
}
public QueryRunner getQueryRunner() {
return this.queryRunner;
}
Is what you meant?
Thanks
> sorry, another point...
> queryRunner parameter must be a QueryManager member parameter, you have to
> remove "static"
>
> Selon [EMAIL PROTECTED]:
>
>> i'm seeing another point. Your QueryManager does not offer the guarantee
>> to
>> be a
>> singleton, you have to declare a private constructor.
>>
>> Jérome.
>>
>>
>> Selon [EMAIL PROTECTED]:
>>
>> > Selon [EMAIL PROTECTED]:
>> >
>> > > Hi,
>> > > I'm using a dao pattern, the call
>> > >
>> > > QueryManager.getInstance().getQueryRunner().query(...);
>> > >
>> > > is executed in my dao object.
>> > >
>> > > Servlet calls dao method.
>> > >
>> > ok.
>> >
>> > > What do you mean with it depends of your project size?
>> > Hi,
>> > If you have a small project it is not mandatory to spend a lot of time
>> in
>> the
>> > abstraction layers, but this is advised. If you implement this
>> approach,
>> life
>> > is
>> > wonderful. :)
>> >
>> > Jérome.
>> >
>> > >
>> > > Thanks a lot
>> > >
>> > > Diego
>> > >
>> > >
>> > > > Hi,
>> > > > It seems correct, why not, QueryRunner object is thread safe.
>> > > > Web layer which calls integration layer directly, it's a bad
>> design but
>> > > > this
>> > > > depends of your project size.
>> > > >
>> > > > Jérome.
>> > > >
>> > > >
>> > > >
>> > > > Selon [EMAIL PROTECTED]:
>> > > >
>> > > >> Hi, I'm developing a web application using DbUtils classes to
>> execute
>> > > >> queries and so on.
>> > > >>
>> > > >> I user QueryRunner class with a DataSource.
>> > > >>
>> > > >> I red this class is thread safe, so I implemented a Singleton to
>> > > >> instance
>> > > >> QueryRunner only once.
>> > > >>
>> > > >> This is my code:
>> > > >>
>> > > >> public class QueryManager {
>> > > >>
>> > > >> private static QueryManager queryManager = null;
>> > > >>
>> > > >> private static QueryRunner queryRunner = null;
>> > > >>
>> > > >> static {
>> > > >> try {
>> > > >> queryRunner = new QueryRunner(DataSourceSingleton.getInstance()
>> > > >> .getDataSource());
>> > > >> } catch (Exception e) {
>> > > >> }
>> > > >> }
>> > > >>
>> > > >> public static QueryManager getInstance() {
>> > > >> if (queryManager == null) {
>> > > >> queryManager = new QueryManager();
>> > > >> }
>> > > >> return queryManager;
>> > > >> }
>> > > >>
>> > > >> public QueryRunner getQueryRunner() {
>> > > >> return queryRunner;
>> > > >> }
>> > > >>
>> > > >> In my servlets I use:
>> > > >>
>> > > >> QueryManager.getInstance().getQueryRunner().query(...);
>> > > >>
>> > > >> Is this correct?
>> > > >>
>> > > >> Which is the best practice to use QueryRunner in a web context?
>> > > >>
>> > > >> Thanks a lot in advance
>> > > >>
>> > > >>
>> > > >> ---------------------------------------------------------------------
>> > > >> To unsubscribe, e-mail: [EMAIL PROTECTED]
>> > > >> For additional commands, e-mail: [EMAIL PROTECTED]
>> > > >>
>> > > >>
>> > > >
>> > > >
>> > > >
>> > > > ---------------------------------------------------------------------
>> > > > To unsubscribe, e-mail: [EMAIL PROTECTED]
>> > > > For additional commands, e-mail: [EMAIL PROTECTED]
>> > > >
>> > > >
>> > >
>> > >
>> > >
>> > > ---------------------------------------------------------------------
>> > > To unsubscribe, e-mail: [EMAIL PROTECTED]
>> > > For additional commands, e-mail: [EMAIL PROTECTED]
>> > >
>> > >
>> >
>> >
>> >
>> > ---------------------------------------------------------------------
>> > To unsubscribe, e-mail: [EMAIL PROTECTED]
>> > For additional commands, e-mail: [EMAIL PROTECTED]
>> >
>> >
>>
>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: [EMAIL PROTECTED]
>> For additional commands, e-mail: [EMAIL PROTECTED]
>>
>>
>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>
>
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]