Das Notes Forum

Domino 9 und frühere Versionen => Entwicklung => Thema gestartet von: pippo am 21.05.04 - 12:37:10

Titel: JDBC - SQL Anweisung
Beitrag von: pippo am 21.05.04 - 12:37:10
Hallo Leute,
möchte von einer Java Applic. auf eine Notesdb zugreifen.

Verbindung funktioniert. Wie setze die Sql-Anweisung ab.

Wie finde ich z.B. in meiner persönl. Maildatei bestimmte Einträge.

"Select * from ..."

Bitte ein SQL-Beispiel.

Wünsche Euch noch einen schönen Tag,
Pippo
Titel: Re:JDBC - SQL Anweisung
Beitrag von: animate am 21.05.04 - 13:07:14
welche Klassen verwendest du dafür?
Was sagt die Doku der Klassen?
Titel: Re:JDBC - SQL Anweisung
Beitrag von: Hernan Cortez am 21.05.04 - 13:11:39
Zuerst brauchst du einen jdbc Treiber.
Da gibt es einen für Lotus Notes. Weiss aber nicht wo.
http://www.lotus.com/products/rnext.nsf/873769A79D9C5B2285256A0800720B96/D14669BE33B75CB585256C4700659FDC?OpenDocument (http://www.lotus.com/products/rnext.nsf/873769A79D9C5B2285256A0800720B96/D14669BE33B75CB585256C4700659FDC?OpenDocument)
Da dürften auch Beispiele dabei sein. Sonst nimmst du einfach den code vom JavaTutorial (s.u.) und versuchst es für deine Zwecke anzupassen. Solltest du Probleme haben, kannst du einfach posten.  
Es dürfte aber besser sein, für den Java Zugriff auf Domino die Notes Java Api. zu benutzen. Siehe dazu einige Threads im Java für Anfänger.
JDBC ist die Basis für den Zugriff auf relationale Datenbanken und Notes ist keine relationale Datenbank. Auch wenn es einen JDBC Treiber gibt, sehe ich das nur als so eine nicht sehr vielversprechende Spass-Lösung.
Beispiele für den Zugriff auf relationale Datenbanken mit Java findest du im Sun Tutorial:
http://java.sun.com/docs/books/tutorial/jdbc/index.html (http://java.sun.com/docs/books/tutorial/jdbc/index.html)
Dann würde ich aber eine echte relationale Datenbank benutzen.
Wirklich einfach und gut zum Lernen ist: http://hsqldb.sourceforge.net/
(du hast die ganze Datenbank für dich alleine, du brauchst nix zu installieren ausser jar in den Classpath).

Gruß Axel
Titel: Re:JDBC - SQL Anweisung
Beitrag von: Hernan Cortez am 21.05.04 - 17:04:40
ooops sehe gerade, dass du die connection schon hast.

Mach es einfach erstmal wie hier im sun tutorial beschrieben:
Code
String query = "SELECT COF_NAME, PRICE FROM COFFEES";
ResultSet rs = stmt.executeQuery(query);
while (rs.next()) {
    String s = rs.getString("COF_NAME");
    float n = rs.getFloat("PRICE");
    System.out.println(s + "   " + n);
}
... und tu dir selber den Gefallen und schau dir irgendwann bald das PreparedStatement Kapitel an (immer besser und oft sicherer).

Wie man jetzt SQL für Notes schreibt, weiss ich auch nicht.
Wie gesagt, du kannst auch die Notes-Java-Api verwenden session, database, view, etc. Ist vermutlich performanter.

Ich tippe mal der SQL String muss so aufgebaut werden:
Du suchst dir eine Ansicht oder einen Ordner, wo die erste Spalte sortiert ist.
Dann suchst du dir die Spalten aus, die du zurückgeben willst.
Und dann der Wert in der ersten Spalte dürfte wohl als Index gewertet werden. Benutz das als LookupKey
SQL String könnte dann so aussehen:
"Select wert1, wert2 FROM viewOrFolder WHERE sortierteSpalte=\"" + key + "\"";
Vielleicht gehen auch nicht-sortierte Spalten als key. Das dürfte aber langsamer sein.

Gruß Axel