This week's book giveaways are in the Java EE and JavaScript forums.
We're giving away four copies each of The Java EE 7 Tutorial Volume 1 or Volume 2(winners choice) and jQuery UI in Action and have the authors on-line!
See this thread and this one for details.
The moose likes JDBC and the fly likes query to find database.. Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login


Win a copy of The Java EE 7 Tutorial Volume 1 or Volume 2 this week in the Java EE forum
or jQuery UI in Action in the JavaScript forum!
JavaRanch » Java Forums » Databases » JDBC
Bookmark "query to find database.." Watch "query to find database.." New topic
Author

query to find database..

Neel Chow
Ranch Hand

Joined: Jan 10, 2005
Posts: 55
Is there any method in java using which we can find which database we are using....let me elaborate..
I am writing a java code which will query a database.. there are two databases..SQL server and Oracle ....and I have two different SQL statement for these...I have to decide from the program which database I am using and use the appropriate SQL statement in the program...
So is there any system call to do this?
Thanks
Paul Sturrock
Bartender

Joined: Apr 14, 2004
Posts: 10336

No. What are the rules which define which database you are using? Normally this would be a configuration issue and some flag or property would direct the code which to use.


JavaRanch FAQ HowToAskQuestionsOnJavaRanch
Neel Chow
Ranch Hand

Joined: Jan 10, 2005
Posts: 55
Hi paul
my problem is I have two statements which do the same thing.

oracle version:

select u.useraccountid,u.personid,u.useraccountnm,u.passwordtxt from PRSNACCSASSIGN p,USERACCOUNT

u,PERSONSTATUSMM ps where p.MGRACCESSLASID <> -2 and u.useraccountid > 0 and ps.EmploymentStatID = 1 And ps.UserAcctStatID =

1 And ps.ExpirationDTM >= to_date('03/03/2005', 'mm/dd/yyyy') and ps.EffectiveDTM <= to_date('03/03/2005', 'mm/dd/yyyy') and u.personid = p.personid and ps.personid = p.personid

SQL server version:

select u.useraccountid,u.personid,u.useraccountnm,u.passwordtxt from PRSNACCSASSIGN p,USERACCOUNT

u,PERSONSTATUSMM ps where p.MGRACCESSLASID <> -2 and u.useraccountid > 0 and ps.EmploymentStatID = 1 And ps.UserAcctStatID =

1 And ps.ExpirationDTM >= '03/03/2005' and ps.EffectiveDTM <= '03/03/2005' and u.personid = p.personid and ps.personid = p.personid

I want to give my program enough flexibily so that the user does not have to choose from these statements..the program should do it.

Thanks
Avi
Paul Sturrock
Bartender

Joined: Apr 14, 2004
Posts: 10336

The two queries you've highlighted are identical in all but one respect - how you've chosen to handle the dates. If you rewrote the query to use a PreparedStatement and bind the date value as a Date object then you can use this on both DBs transparently.

If you find yourself worrying about the effect of DB specific SQL finding its way into your application then I suggest you read up on the DAO pattern.
Neel Chow
Ranch Hand

Joined: Jan 10, 2005
Posts: 55
Thanks Paul..
 
It is sorta covered in the JavaRanch Style Guide.
 
subject: query to find database..