Autor Thema: JDBC Zugriff  (Gelesen 3685 mal)

Offline CLI_Andreas_Schmidt

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 668
  • Geschlecht: Männlich
  • I love YaBB 1G - SP1!
    • Lotus Notes & Domino Schulung und Entwicklung
JDBC Zugriff
« am: 30.01.07 - 19:11:59 »
Hi @all JavaDevss,

ich versuche über JDBC eine Notesdatenbank auszulesen. Der Zugriff funktioniert auch soweit. Was unschön ist:
1. Dass immer nach dem Passwort gefragt wird. (Auch wenn ich das Passwort bei getconnection mitgebe)
2. Muss bei JDBC ein Notes CLient installiert sein ?

hmmm.

Wie gesagt, die Ausgabe läuft an der Eclipse-Konsole.

Gruss

Andreas
Viele Grüße

Andreas.Schmidt@lotus-schmidt.de

Offline CLI_Andreas_Schmidt

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 668
  • Geschlecht: Männlich
  • I love YaBB 1G - SP1!
    • Lotus Notes & Domino Schulung und Entwicklung
Re: JDBC Zugriff
« Antwort #1 am: 30.01.07 - 19:16:52 »
Ach ja,

und dann kommt ganz am Ende des Scripts, das die Uhrzeit des names.nsf in der Vergangenheit liegt. Das mit der Uhrzeit ist ja jetzt nicht das Problem, nur dass überhaupt auf lokal das names gesucht wird, verstehe ich hier auch nicht.
Viele Grüße

Andreas.Schmidt@lotus-schmidt.de

Offline CLI_Andreas_Schmidt

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 668
  • Geschlecht: Männlich
  • I love YaBB 1G - SP1!
    • Lotus Notes & Domino Schulung und Entwicklung
Re: JDBC Zugriff
« Antwort #2 am: 30.01.07 - 19:25:19 »
Und noch etwas genauer.

beim Start geht eine DOS-BOX auf mit Titel des zugreifenden Users. (je nach lokale Arbeitsumgebung)  Plus JAVAW.exe

Hier wird das Passwort abgefragt, obwohl das Passwort im Script mitgegeben wird.

?
Viele Grüße

Andreas.Schmidt@lotus-schmidt.de

Offline flaite

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.966
    • mein del.icio.us
Re: JDBC Zugriff
« Antwort #3 am: 30.01.07 - 20:16:25 »
Hi,

kannst du mal den code posten. Ruf dich echt mal an die Tage.

gruß Axel
Ich stimm nicht mit allen überein, aber mit vielen und sowieso unterhaltsam -> https://www.youtube.com/channel/UCr9qCdqXLm2SU0BIs6d_68Q

---

Aquí no se respeta ni la ley de la selva.
(Hier respektiert man nicht einmal das Gesetz des Dschungels)

Nicanor Parra, San Fabian, Región del Bio Bio, República de Chile

Offline CLI_Andreas_Schmidt

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 668
  • Geschlecht: Männlich
  • I love YaBB 1G - SP1!
    • Lotus Notes & Domino Schulung und Entwicklung
Re: JDBC Zugriff
« Antwort #4 am: 30.01.07 - 20:51:19 »
Würde mich freuen : )

Hier der Code

import java.util.*;
import java.io.*;
import java.util.*;
import java.sql.*;
import java.sql.Date;
import lotus.jdbc.domino.*;

public class jdbcconnect {
   public static void main( String[] args )
    {
        Connection         con;
        Statement          stmt;
        ResultSet          rs;
        ResultSetMetaData  rsmd = null;
        String name;
        String sql     = "SELECT * FROM Termine";
        System.out.println("1");
        String connStr = "jdbc:domino:/DB/SERVER";
        System.out.println(connStr);         
           try {
            try {
               
                Class.forName( "lotus.jdbc.domino.DominoDriver" );
            }
            catch( ClassNotFoundException e ) {
                System.out.println( "ClassNotFoundExecption: " + e.getMessage() );
               
            }
            System.out.println("3");
            System.out.println( "Connecting to URL " + connStr );
            System.out.println("4");
            con = DriverManager.getConnection( connStr, "USER", "PASSWORT" );
            System.out.println("5");
            System.out.println();
            // Create Statement
            stmt = con.createStatement();
            System.out.println("6");
            // Execute statement
            rs = stmt.executeQuery( sql );
            System.out.println("7");
            System.out.println( "Executing... " + sql );
            System.out.println("8");
            System.out.println();
            // Get Result set metadata
            rsmd = rs.getMetaData();
            System.out.println("9");
            // Find number of columns in the result set
            int colCount = rsmd.getColumnCount();
            // Array to hold max display size per column
            int[] len = new int[colCount+1];
            // Print column Labels as header
            for( int i=1; i<=colCount; i++ )
            {
                // Get column label
                String label = rsmd.getColumnLabel( i );
                // Store the maximum of display size or label length
                if( label.length() > 10 )
                    len = label.length();
                else
                    len = 10;
                // Print label
                System.out.print( label );
                // Pad with blanks
                fill( " ", len-label.length() );
                // Column seperator
                System.out.print( "  " );
            }
            System.out.println();
            // Print lines
            for( int i=1; i<=colCount; i++ )
            {
                fill( "-", len );
                System.out.print( "  " );
            }
            System.out.println();
            // Fetch all rows in the result set
            while( rs.next() )
            {
                // Get all columns as String
                for( int i=1; i<=colCount; i++ )
                {
                    Object obj = rs.getObject( i );
                    boolean nl = rs.wasNull();
                    if( nl )
                        printCol( len, "null" );
                    else
                        printCol( len, obj.toString() );
                }
                System.out.println();
            }
            // Close the statement
            stmt.close();
            // Close the connection
            con.close();
        } catch( Exception e ) {
            System.out.println( e.getMessage() );
        }
   }

    // Print a string N times
    static void fill( String s, int times )
    {
      if( times <= 0 )
          return;
      for( int i=0; i<times; i++ )
      {
          System.out.print( s );
      }
    }

    // Print a column and pad it with blanks + separator
    static void printCol( int len, String s )
    {
        System.out.print( s );
        fill( " ", len-s.length() );
        System.out.print( "  " );
    }

}
Viele Grüße

Andreas.Schmidt@lotus-schmidt.de

Offline flaite

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.966
    • mein del.icio.us
Re: JDBC Zugriff
« Antwort #5 am: 31.01.07 - 06:17:00 »
Wofür benutzt du überhaupt dieses Notes-JDBC?
Es gibt viele Hinweise, dass es von IBM praktisch nicht mehr unterstützt wird. Einen download konnte ich nur über einen Franzosen mit dem schönen Namen Domino Dude finden (http://www.dominodude.com/personal/tmk/blog.nsf/d6plinks/TKEN-6D8KVY).
Es gibt eine MENGE Möglichkeiten, Daten von Domino mit einem Java Programm auszulesen.

Am wenigsten Infrastruktur benötigen HTTP Zugriffe gegen ?ReadViewEntries-URLs von Ansichten. Dafür muß aber auf dem Domino Server der HTTP Task laufen und es funktioniert nur gegen Daten, die in Notes-Ansichten darstellbar sind (kein RichText). Zum auslesen-nicht-schreiben von aussen ist dieses ?ReadViewEntries echt einfacher als SOAP-Webservices, die natürlich auch gehen.

Besser als dies Notes-JDBC Api - an der wie gesagt IBM auch schon lange nicht mehr gearbeitet hat - ist der klassische Weg über Notes.jar.
z.B. http://www-128.ibm.com/developerworks/lotus/library/ls-Java_access_pt1/index.html
Local Calls sind oft allermeist die bessere Lösung als Remote Calls (Corba). Sofern ein Notes Client auf dem Rechner installiert ist, auf dem das Java Programm laufen soll, dann kann man mit "local" calls auch auf einen Server zugreifen.
Vorsicht mit obskuren jars wie notes-JDBC. Die Obskurität hat oft schmutzige Gründe.

Axel

 
« Letzte Änderung: 31.01.07 - 06:22:47 von Axel Janssen »
Ich stimm nicht mit allen überein, aber mit vielen und sowieso unterhaltsam -> https://www.youtube.com/channel/UCr9qCdqXLm2SU0BIs6d_68Q

---

Aquí no se respeta ni la ley de la selva.
(Hier respektiert man nicht einmal das Gesetz des Dschungels)

Nicanor Parra, San Fabian, Región del Bio Bio, República de Chile

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz