Zugriff auf Lotus Domino per Java

+ andere TechDocs
+




Inhalt

  1. Weiterführende Informationen
  2. Installation des Lotus-Domino-JDBC-Treibers unter Windows bei installiertem Lotus-Notes-Client
  3. Programmierbeispiel


Weiterführende Informationen



Installation des Lotus-Domino-JDBC-Treibers unter Windows bei installiertem Lotus-Notes-Client

  1. Lotus Notes Client 4.6 muss installiert sein und funktionieren.
  2. Downloads von http://www.lotus.com/developers/devbase.nsf/homedata/homejdbc / Download:
    Ohne Registrierung gibt es eine Doku im WinHTML-Format (jdbc.chm, 0,3 MByte),
    mit Registrierung gibt es den JDBC-Treiber inklusive Doku im HTML-Format (lddj11.exe, 2 MByte).
  3. lddj11.exe ausführen und Anweisungen befolgen.


Programmierbeispiel

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

public class Domino_Sample1
{
    public static void main( String[] args )
    {
        Connection         con;
        Statement          stmt;
        ResultSet          rs;
        ResultSetMetaData  rsmd = null;
        String name;
        String sql     = "SELECT * FROM MyView";
        String connStr = "jdbc:domino:/\rootdir\subdir\DatabaseName.nsf/ServerName/OrgUnit/Org";
        try {
            try {
                Class.forName( "lotus.jdbc.domino.DominoDriver" );
            }
            catch( ClassNotFoundException e ) {
                System.out.println( "ClassNotFoundExecption: " + e.getMessage() );
                exit( 1 );
            }
            // GET CONNECTION
            System.out.println();
            System.out.println( "Connecting to URL " + connStr );
            con = DriverManager.getConnection( connStr, "", "" );
            System.out.println();
            // Create Statement
            stmt = con.createStatement();
            // Execute statement
            rs = stmt.executeQuery( sql );
            System.out.println( "Executing... " + sql );
            System.out.println();
            // Get Result set metadata
            rsmd = rs.getMetaData();
            // 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[i] = label.length();
                else
                    len[i] = 10;
                // Print label
                System.out.print( label );
                // Pad with blanks
                fill( " ", len[i]-label.length() );
                // Column seperator
                System.out.print( "  " );
            }
            System.out.println();
            // Print lines
            for( int i=1; i<=colCount; i++ )
            {
                fill( "-", len[i] );
                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[i], "null" );
                    else
                        printCol( len[i], 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( "  " );
    }
}




Weitere Themen: andere TechDocs | Webanwendungen | SAP BAPI®
© 1998-2001 Torsten Horn, Aachen