Home | Contact Us | FAQ | Search & Site Map | Link to Us
Sign In | Join | Other 45 Sites in Network
HomeAnnouncementsWhite Papers
Discussion GroupsFirst AidDatabasesJavaBeansGUIJava 3DVirtual MachineCORBASecurityToolsGeneral
Java DirectoryOpen Source ProjectsSample Book ChaptersUser GroupsWeb Resources
Related Topics
Databases.NETMore Topics ...

Java Forum / Databases / May 2004

Tip: Looking for answers? Try searching our database.

JDBC Competitors?

Thread view: 
Krmathieu - 03 May 2004 20:55 GMT
I am writing a term paper about JDBC for a Java programming course I am taking
and one of the sections of the paper is "competing technologies". My question
is are there in fact competitors with JDBC that seek to do the same thing, or
is JDBC pretty mcuh the standard that everyone uses? I thought that ODBC would
be considered an actual competing technology, but when I asked and database
type at work he said that is not the case. Any thought that anyone might have
on this would be greatly appreciated. Thanks!

Kevin
Joe Weinstein - 03 May 2004 21:17 GMT
> I am writing a term paper about JDBC for a Java programming course I am taking
> and one of the sections of the paper is "competing technologies". My question
[quoted text clipped - 5 lines]
>
> Kevin

Hi. There is no meaningful alternative to JDBC for connecting to DBMSes from Java.
There are higher-level APIs, but they will be using JDBC internally. At the wire level,
the protocol to talk to a DBMS is proprietary to the DBMS. Typically the DBMS vendor
provides a publicly usable native library API. This API is used by type-2 JDBC
drivers. Type-4 (all-java) drivers understand the wire level protocol and the vendor
implements the wire level protocol in Java to implement the JDBC calls. Typically DBMS
vendors provide extensions to JDBC to execute any special functionality that their
wire-level API offers that goes beyond standard JDBC.
   As such, there is no value in re-implementing the wire-level protocol for a non-JDBC
API, especially when JDBC is part of the standard that makes Java so productive.

Joe Weinstein at BEA
Jorge Chandra - 06 May 2004 08:44 GMT
> Hi. There is no meaningful alternative to JDBC for connecting to DBMSes from Java.
> There are higher-level APIs, but they will be using JDBC internally.

That is not exactly true. See sqlrelay:
http://sqlrelay.sourceforge.net/

Although not written in Java it has a Java API and it is "JDBC'less".
I'm not sure if it qualifies as a "meaningful alternative to JDBC".

Regards,
Jorge Chandra
Joe Weinstein - 06 May 2004 15:12 GMT
>>Hi. There is no meaningful alternative to JDBC for connecting to DBMSes from Java.
>>There are higher-level APIs, but they will be using JDBC internally.
[quoted text clipped - 4 lines]
> Although not written in Java it has a Java API and it is "JDBC'less".
> I'm not sure if it qualifies as a "meaningful alternative to JDBC".

You are right. I'd never heard of it.
Joe

> Regards,
> Jorge Chandra
Chris Smith - 04 May 2004 17:09 GMT
> I am writing a term paper about JDBC for a Java programming course I am taking
> and one of the sections of the paper is "competing technologies". My question
[quoted text clipped - 3 lines]
> type at work he said that is not the case. Any thought that anyone might have
> on this would be greatly appreciated. Thanks!

There are a few possible answers, depending on what you mean.

First of all, not all databases are relational, but all commonly used
databases are relational.  Non-relational databases won't use JDBC,
since it's built strongly around the relational model.  This isn't so
much about competitors to JDBC, as about competitors to relational
databases.

JDBC is practically universal in the relational database space in Java.  
There is not, to the best of my knowledge, any existing relational
database access API for Java that is as widespread or that provides
access to as many DBMS options as JDBC... nor is there anything even
close.  (There is a specific tool for Oracle called SQLJ that doesn't
appear to be based on JDBC, but I could be wrong about that; and the
tool is specific to the Oracle DBMS.)

If you're looking from a cross-platform perspective, though, then ODBC
certainly competes against JDBC.  Much like the object vs. relational
database scenario, though, they have to compete in the context of their
respective language choices.  That is, JDBC might be a reason to choose
Java as a language for implementation (it's almost universally
considered superior to ODBC), but Java and ODBC in combination is simply
not a viable choice for deploying a realistic application.

It's also occasionally true in casual usage that "JDBC" is used as a
synonym for "plain JDBC", meaning that software is developed to use JDBC
directly to connect to the database.  That is certainly not the only
option, and "plain JDBC" definitely does compete with other
technologies: Oracle TopLink, Hibernate, JDO, EJB-CMP, CocoBase, Castor,
etc.  These other options use JDBC as part of their implementation
(excepting some of the more abstract ones like JDO, which as a
specification doesn't rely on JDBC but in practice non-JDBC-based JDO
implementations are not based on relational databases).

The advantage of the latter O/R mapper products listed is that they
provide a higher-level, more object-oriented, and easier way to interact
with the database.  A product using these technologies may or may not
also use JDBC directly.  Some technologies (e.g., Hibernate) visibly
depend on JDBC and practically encourage dropping down to the JDBC level
for solving some performance bottlenecks.  Others (e.g., JDO) make it a
design goal to hide JDBC entirely, such that it's possible to provide
implementations that are based on XML files or object databases, rather
than relational databases; so it's clearly harder to mix them with JDBC.

I'm sure that's more than you wanted to know...

Signature

www.designacourse.com
The Easiest Way to Train Anyone... Anywhere.

Chris Smith - Lead Software Developer/Technical Trainer
MindIQ Corporation

Roedy Green - 04 May 2004 18:35 GMT
>  Non-relational databases won't use JDBC,

see http://mindprod.com/jgloss/pod.html
The paradigm here is persistent objects, with transactions so you can
roll them back to a previous state if you don't complete a
transaction.

--
Canadian Mind Products, Roedy Green.
Coaching, problem solving, economical contract programming.
See http://mindprod.com/jgloss/jgloss.html for The Java Glossary.
Chris Smith - 04 May 2004 20:22 GMT
> >  Non-relational databases won't use JDBC,
>
> see http://mindprod.com/jgloss/pod.html
> The paradigm here is persistent objects, with transactions so you can
> roll them back to a previous state if you don't complete a
> transaction.

Roedy,

You might want to fix "db4o" on that page.  That last character is an
"o" as in "object", not a "0" as in the numeral.  Fortunately, the
company has purchased the "db40.com" domain and set it up to redirect to
their actual "db4o.com" website, so your link still works.

Signature

www.designacourse.com
The Easiest Way to Train Anyone... Anywhere.

Chris Smith - Lead Software Developer/Technical Trainer
MindIQ Corporation

Carl Rosenberger - 10 May 2004 17:13 GMT
> > see http://mindprod.com/jgloss/pod.html
>
> Roedy,
>
> You might want to fix "db4o" on that page.  That last character is an
> "o" as in "object", not a "0" as in the numeral.

Thanks for the correction on your website, Roedy.

I wonder why you think that the name is silly.

db4o is the acronym for
database for objects
d   b    4   o

We pronounce it "deebeeforowe".

I would love to hear your suggestions for a better name.
We are considering to go OpenSource this year and this
might be the last reasonable chance to change the name.

We also experience that "db4o" is not ideal. Visiting
customers we often find that they neither know what the
name means nor how to pronounce it.

Carl
Signature

Carl Rosenberger
db4o - database for objects - http://www.db4o.com

Adam Maass - 05 May 2004 07:39 GMT
> Non-relational databases won't use JDBC,
> since it's built strongly around the relational model.

Matisse Software has an object database that uses SQL as its native
query language, and a pretty thorough JDBC driver to complement it.

www.matisse.com

They are, however, the exception that proves the rule.

>There is a specific tool for Oracle called SQLJ that doesn't
> appear to be based on JDBC, but I could be wrong about that; and the
> tool is specific to the Oracle DBMS.

Long ago and far away, Oracle was talking about submitting SQLJ to a
standards body. I don't think that initiative got very far. The initial
implementation relied on JDBC under the covers, though that was
just a convenient reuse of existing technology rather than a hard-wired
requirement. SQLJ has since quietly disappeared.

-- Adam Maass
Martin Winkelbauer - 05 May 2004 09:22 GMT
> > Non-relational databases won't use JDBC,
> > since it's built strongly around the relational model.
[quoted text clipped - 17 lines]
>
> -- Adam Maass

SQLJ has not really disappeared yet.
it's in IBM's S390/zOS - DB2 for example, and rocking hard !
it gives you static SQL (precompiled access packages) for real performance
there
but is a fair bit more complicated to use than JDBC.

regards
Martin
ralphl@xxx.uni-muenchen.de - 07 May 2004 06:12 GMT
JTDS or JavaTDS. It is a binary stream format for SQL Server.
It can be found at Sourceforge


Free Magazines

Get these publications absolutely FREE for up to 12 months. There are no hidden fees and no obligation. Simply choose a title, complete the application form and submit it. Read more ...

Oracle MagazineNetwork ComputingComputer WorldBio-IT WorldeWeekInformation WeekInfosecurity
 
Sign In
Join
My Latest Posts
My Monitored Threads
My Blog
My Photo Gallery
My Profile
My Homepage

Start New Thread
Enable EMail Alerts
Rate this Thread



©2009 Advenet LLC   Privacy Policy - Terms of Use
This website includes both content owned or controlled by Advenet as well as content owned or controlled by third parties.