java訪問操作lotus domino資料庫
有幾種方式:
1、直接使用domino本身的jar文件介面,這種連接方式需要domino伺服器啟動diiop服務;
2、使用domino的lddj介面,介面可以到ibm的網站上去下載,這種連接方式只能在window環境下使用,需要安裝notes客戶端,使用id來驗證的,需要手動輸入密碼;
http://www-12.lotus.com/ldd/doc/drivers/jdbc/1.5/lddj_help.nsf
3、使用corba來訪問domino,這個比較煩,我至今沒有調通
http://www.oaunion.com/oaunion/o ... pendocument&skeyword=corba發表者:slzhang
是可以通過java來取得domino的資料.也可以通過jsp來讀domino里的資料,只要你在domino上打開diiop服務就可以.
附一個jsp的例子如下:
<%@ page c language="java"%>
<%@ page import="com.dragon.*" %>
<%@ page import="lotus.domino.*" %>
<%!
session sess;
database db;
view view;
document doc;
string host = "",user = "", pawd = "";
%>
<%
try{
sess = notesfactory.createsession("192.168.2.1","admin","12345678");
host = sess.getservername();
user = sess.getusername();
system.out.println("host: " + host + "; user: " +user);
db = sess.getdatabase(host,"fawen\\sample.nsf",false);
view = db.getview("jsp");
doc = view.getfirstdocument();
out.println(db.gettitle());
}catch(notesexception ne){
system.out.println("error: " + ne.id + " ==> " + ne.getmessage());
}
%>
<html>
<head>
<title>jsp get domino data</title>
</head>
<body>
<table border="1" bgcolor="#ff33cc">
<tr><th> 姓名</th><th>性別</th><th>生日</th><th>職務</th><th>職稱</th><th> 部門</th></tr>
<%
while(doc!=null){
%>
<tr>
<td><%= doc.getitemvalue("jname") %></td>
<td><%= doc.getitemvalue("jsex") %></td>
<td><%= doc.getitemvalue("jbirth") %></td>
<td><%= doc.getitemvalue("jjob") %></td>
<td><%= doc.getitemvalue("jjobtitle") %></td>
<td><%= doc.getitemvalue("jdept") %></td>
</tr>
<%
doc = view.getnextdocument(doc);
}
out.println("host: " + host + "; user: " +user);
doc.recycle();
view.recycle();
db.recycle();
sess.recycle();
%>
</table>
</body>
</html>
發表者:cnhxjtoa
以前我寫過domino5-->oracle8
以下是與domino建立鏈接的相關代碼
import lotus.domino.*;
try {
system.out.println("開始notes數據源進行連接....");
session s = notesfactory.createsession(noteshost,username,userpassword);
system.out.println("與notes數據源成功連接,現正在查找notes登錄資料庫oak.nsf");
//定義全局性變數
database db = null;
database namesdb=null;
view view =null;
document doc = null;
string namesuser="";
db = s.getdatabase(s.getservername(), sysinf.notes_dir +"/oak.nsf");
acl acl = db.getacl();
aclentry entry = acl.getfirstentry();
namesdb=s.getdatabase(s.getservername() ,"names.nsf") ;
view = namesdb.getview("groups");
do
{
//具體分析每一個對象
switch (entry.getusertype()) {
case aclentry.type_mixed_group :
//混合組
system.out.println("混合組 "+entry.getname()) ;break;
case aclentry.type_person :
//個人
namesuser=entry.getname().substring(3,entry.getname().indexof("/") );
addnotesuser(namesuser);
system.out.println("個人 : "+ namesuser) ;
break;
case aclentry.type_person_group :
//個人群組
system.out.println("個人群組: "+entry.getname() ) ;
//names.nsf 中視圖groups 文檔members域有每一個用戶
doc = view.getfirstdocument();
while (doc != null && !doc.getfirstitem("listname").gettext().equals(entry.getname() ) )
{
doc = view.getnextdocument(doc);
}
if (doc!=null){
enumeration values = doc.getfirstitem("members").getvalues().elements();
while (values.hasmoreelements()) {
//將cn=administrator/o=autosoft只取它的名字administrator
namesuser=values.nextelement().tostring() ;
namesuser=namesuser.substring(3,namesuser.indexof("/") ) ;
addnotesuser(namesuser);
}
}
break;
case aclentry.type_server :
//伺服器
system.out.println("伺服器 "+entry.getname()) ;break;
case aclentry.type_server_group :
//伺服器組
system.out.println("伺服器組 "+entry.getname()) ;break;
case aclentry.type_unspecified :
//沒有指定
if(entry.getname().indexof("/")>1 )
{
namesuser=entry.getname().substring(3,entry.getname().indexof("/") );
addnotesuser(namesuser);
system.out.println("找到一個沒有指定類型的用戶 "+entry.getname().substring(3,entry.getname().indexof("/"))) ;
break;
}
else
{
system.out.println("沒有指定 "+entry.getname()) ;
break;
}
}
} while ((entry = acl.getnextentry(entry)) != null);
system.out.println("用戶導入完成") ;
}
catch (exception ex)
{
ex.printstacktrace() ;
system.out.println("與notes數據源連接失敗" ) ;
}