views:

392

answers:

5

I need to query an IBM Domino data store that was populated using Lotus Notes from within a Java application. I am hoping that IBM followed the JDBC design pattern so that I can implement similarly to what I have done to get data from Oracle. Where should I start?


I am aware that IBM does not support JDBC for Domino. What I need is an equivalent.

A: 

Lotus Notes JDBC Driver might answer some of your questions.

Chris Kaminski
+5  A: 

Searching Google for "java lotus notes jdbc" yields this note from IBM:

Question
Is Lotus® Domino® Driver for JDBC (LDDJ) supported on current versions of IBM® Lotus Notes® and Lotus Domino?

Answer
IBM no longer provides a Notes JDBC driver since Java developers may utilize the Notes.jar to make API calls into Notes databases. The Notes JDBC driver is no longer provided nor supported.

matt b
I originally marked yours as the accepted answer, but now I am withdrawing that. While it is informative to know that Domino does not support JDBC, I was asking for what their equivalent technology is.
dacracot
it sounds like the IBM article is telling you to use Notes.jar as an API to access the data - wouldn't that be the equivalent technology?
matt b
A: 

Lotus Notes/Domino isn't really an equivalent data store to something like Oracle, so finding something to slot into your existing solution could be tricky. As matt b suggested, you could try using the Notes Java api supplied by notes (You should be able to get this from a notes client install). Another option is to use the wrapper api Domingo which takes some of the edges off notes.jar (which is itself a wrapper for the C apis).

A simpler option might be to use http and xml (assuming you only want to read data(?)). If you enable http on the domino server, you can get xml data out of views.

http://www.yourserver.com/db.nsf/viewname?readviewentries

Salgiza's answer to this question has more detail on this.

Jon McAuliffe
A: 

This really is no true equivalent to a JDBC driver if by that you mean something that works in a similar way. The sql style interface provided by NotesSQL and the JDBC driver was always severely limited.

To directly interact with the data with java you need to use the Notes java api using Notes.jar (local) or NCSO.jar (remote IIOP). This gives you a notes style access to the data. Your data is organized as databases of documents containing items. The documents are indexed into views and an individual document can be indexed by multiple views. There are also various built in search facilities.

If you just need to provide external access to a relatively fixed query a web service built into the application is a good way to go. Internally this would use the native notes api (java or lotusscript) and you'd probably want to get the developer of the database o do that for you.

If you really need to have free access to the data and want to query it with SQL you will have to export it to an RDBMS through a number of tools and some of these can keep your data in sync. Since there is no generic way to look at Notes data as simple tables you need to configure this export to match the application requirements.

kerrr
A: 

Lotus Notes is not a relational database, I do recall from some time ago, they started supporting java instead of lotus script, there is a good chance that they support an external java API. According to wikipedia:

External to the Lotus Notes application, IBM provides toolkits in C, C++, and Java to connect to the Domino database and perform a wide variety of tasks. The C toolkit is the most mature and the C++ toolkit is an objectized version of the C toolkit, lacking many functions the C toolkit provides. The Java toolkit is the least mature of the three and can be used for basic application needs.

So if you can get your hands on a toolkit you should be ready to roll. I noticed on the toolkit page that they support an odbc driver, so you should be able to use the jdbc-odbc bridge.

crowne