Получить имена таблиц из базы данных Lotus Notes - PullRequest
4 голосов
/ 31 марта 2011

Я пытаюсь написать программу, которая будет выгружать всю базу данных Lotus Notes в файл через драйвер NotesSQL. Я подключаюсь через jdbc: odbc и имею

Я могу выполнять выборки и получать данные из базы данных Lotus Notes

вот код

try {
    System.out.print("Connecting... ");
    Connection con = DriverManager.getConnection("jdbc:odbc:NRC", "UserName", "Passw0rd1337");
    System.out.println("OK");
    DatabaseMetaData dmd = con.getMetaData();
    String[] tableTypes = new String[] {"TABLE", "VIEW"};
    ResultSet rs = dmd.getTables(null, null, "%", tableTypes);
    ResultSetMetaData rsd = rs.getMetaData();
    while (rs.next()) {
        for (int i=1; i<=rsd.getColumnCount();i++)
            System.out.println(i+" - "+rsd.getColumnName(i) + " - " + rs.getString(1));
    }
    con.close();
    System.out.println("Connection closed");
} catch (Exception e) {
    System.out.println(e);
}

И есть ли лучший способ подключения к базам данных Lotus Notes через NotesSQL? Потому что с моим кодом я получаю только null значений для имен ...

1 Ответ

7 голосов
/ 05 апреля 2011

Я знаю, что вы пытаетесь использовать JDBC и NotesSQL. Но, в зависимости от ваших потребностей, и с помощью Eclipse вы можете обращаться к базам данных Notes непосредственно через Java, что, откровенно говоря, намного проще, чем пытаться использовать JDBC, немного квадратного колышка в круглой дыре, когда вы используете JDBC с Domino. Даже если на хост-компьютере не установлен Lotus Notes, вы все равно можете писать и развертывать Java-апплеты и сервлеты для получения данных.

Вам нужно будет получить соответствующую банку Lotus Domino. Итак, моя рекомендация - это альтернативный подход к JDBC.

Таким образом, если у вас есть JAR-файлы Lotus Domino в вашем проекте Eclipse, вы сможете кодировать любые извлечения из представления или даже выполнять поиск по базе данных adhoc.

Настройка

Если это звучит как направление, в котором вы должны идти, то, во-первых, посмотрите на настройку Eclipse с соответствующими банками Notes здесь . Есть только несколько. (Иногда вы будете читать об использовании CORBA и / или IIOP. Старайтесь избегать этого, это просто мир боли).

Образцы и фрагменты

Эта статья разработчика (хотя ей 6 лет) все еще работает для Domino и является надежной основой для подхода, который я защищаю. В этой статье рассматривается инициализация классов NotesFactory и Session, чтобы получить доступ к Notes API. Дополнительная онлайн-справка здесь для класса NotesFactory.

Если у вас есть клиент Lotus Notes, вы можете просмотреть фрагменты кода здесь . Классический пример доступа к документам через Views в Java можно найти здесь .

После этого вы можете легко получить доступ к представлениям и документам с примерами из здесь и узнать у гуру (Боб Балабан) об управлении памятью здесь .

Если вы обрабатываете большие объемы или запускаете сервлеты, тогда важно управление памятью, иначе не стоит сильно беспокоиться об этом. Вы можете выполнить собственный поиск в базе данных Notes, написав ее в формуле, а затем используя методы « search » для собственного выполнения запроса.

Перебор документов или представлений?

Самый простой подход - просматривать документы через представления и / или использовать методы " getdocumentByKey ", чтобы получить коллекцию и поработать над этим. В Domino «Представления» являются эквивалентами таблиц. Вы также можете получить список представлений через свойство Database.Views

Собственные запросы

Трудно найти четкие инструкции по нативным запросам для Notes, но мне удалось найти его в Интернете здесь .

...