jdbc方式应该不能在jsp或javabean中使用吧,因为它会弹出密码输入框让你输入密码的;使用corba应该是可以的;第一种方式就不知道了,因为它要依靠客户端的。
第一种方式的例程:
import lotus.domino.*;
import java.net.*;
import java.io.*;
import java.util.*;
public class ConnectToDomino
{
Session session = null;
String strServer = null;
String strUserName = null;
String strPassWord = null;
//构造函数
public ConnectToDomino(String Server,String User,String Pass) {
strServer = Server;
strUserName = User;
strPassWord = Pass;
setConnection();
}
//建立连接
public boolean setConnection() {
if(strServer==null || strUserName==null || strPassWord==null) return false;
try {
System.out.println("用户登录:" + strServer + "\t" + strUserName);
String IOR=GetIOR();
if(IOR!="")
System.out.println("成功取得IOR,开始创建session.....");
else
System.out.println("获取IOR失败!");
//session = NotesFactory.createSession(strServer,strUserName,strPassWord);
//session = NotesFactory.createSession(strServer,"","");
//session = NotesFactory.createSessionWithIOR(IOR); //匿名
session = NotesFactory.createSessionWithIOR(IOR,strUserName,strPassWord); //用户身份
System.out.println("成功登陆,登录信息:\n服务器名称:" + session.getServerName() + "\n登录用户名:" +
session.getUserName() + "\n");
return true;
}
catch(Exception e)
{
e.printStackTrace();
return false;
}
}
//获取IOR
public String GetIOR() {
InputStream bin;
String Result="";
int character;
try{
URL url = new URL("http://"+strServer+"/diiop_ior.txt");
bin = url.openStream();
while((character=bin.read())>0) {
Result += (char)character;
}
}
catch(Exception e){
e.printStackTrace();
}
return Result;
}
//检索文档
public void Search(String SearchDB,String SearchFormular) {
try {
Database db = session.getDatabase(session.getServerName(),SearchDB);
System.out.println ("Searching:" + SearchFormular+"...");
DocumentCollection dc = db.search(SearchFormular);
Document docResult = dc.getFirstDocument();
if(docResult==null) return;
int i;
int j=0;
while (docResult != null) {
System.out.println(docResult.getItemValueString("FullName"));
docResult = dc.getNextDocument();
}
}catch(Exception e)
{
e.printStackTrace();
}
}
//创建文档
public boolean CreateNewDoc(String DBName,String formName,String[] FieldList,String[] ValueList,String AgentName) {
try{
Database db = session.getDatabase(session.getServerName(),DBName);
Document doc = db.createDocument();
Item item = doc.appendItemValue("form",formName);
doc.computeWithForm(true,false);
int i;
for(i=0;i item = doc.replaceItemValue(FieldList[i],ValueList[i]);
}
doc.save();
if(AgentName!=null || AgentName!="") {
Agent agent = db.getAgent(AgentName);
if(agent!=null) {
agent.run(doc.getNoteID());
}
}
return true;
}catch(Exception e)
{
e.printStackTrace();
return false;
}
}
//关闭
public void close() {
try{
session.recycle();
session = null;
}
catch(Exception e)
{
e.printStackTrace();
}
}
}
以下是与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数据源连接失败" ) ;
}
分享到:
相关推荐
本压缩包“java访问domino数据库.rar”提供了关于如何利用Java来访问和操作Domino数据库的重要信息。下面将详细讨论Java与Domino集成的关键知识点。 1. **Java与Domino的集成**: - Java可以借助Lotus Domino的...
通过上述步骤,我们可以利用Java语言有效地操作Domino数据库,无论是简单的读取还是复杂的事务处理。然而,值得注意的是,在实际部署中,应确保适当的错误处理和资源管理,以提高代码的健壮性和安全性。此外,由于...
通过使用 Lotus Domino 的 API 和开发工具,开发者可以创建高效、灵活的附件处理解决方案。 Lotus Domino 附件开发的优势包括: * 强大的附件处理功能 *灵活的 API 和开发工具 * 高效的处理速度 * 广泛的应用场景...
总结起来,Java连接Lotus Domino邮件服务器并读取邮件内容和附件涉及的主要知识点包括:JNDI或LotusJCA连接、Domino API的使用、数据库操作、邮件和附件的读取、日期转换以及数据模型的设计。通过理解和运用这些知识...
这些资源可以用来处理各种任务,如字符串操作、日期时间计算、数据库查询和事务管理等。 #### 3. 安全性增强 在高级编程中,安全性是一个至关重要的方面。Lotus Domino Web支持多种安全机制,包括用户认证、权限...
标题 "编程实现notes domino数据库的访问" 涉及的主要知识点是使用编程语言与IBM Lotus Domino数据库进行交互。Lotus Domino是一款企业级的应用服务器,主要用于协同工作、电子邮件和文档管理,其数据库系统称为...
2. **Notes/Domino数据库**:Domino中的数据库不仅仅是数据的容器,它们还包含逻辑、表单、视图、样式表和代理等组件,这些组件共同构成了一个完整的应用。 3. **表单**:表单是用户与数据交互的界面,可以设计为...
在Lotus Domino/Notes5.0中,Java和JavaScript可以相互配合使用,Java可以用于开发服务器端的应用程序,而JavaScript可以用于开发客户端的交互程序。这样的组合可以使开发变得更加灵活和高效。 Java在Lotus Domino/...
根据提供的信息,我们可以推断《Lotus Domino Web 高级编程9.pdf》这本书主要围绕着Lotus Domino Web的高级编程技巧展开。虽然具体内容没有给出详细信息,但是基于书名及通常此类书籍会涵盖的主题,我们可以推测书中...
Domino URL是访问Domino资源的地址,它可以指向一个特定的数据库、表单、视图或文档。URL格式通常包括服务器名、路径、数据库名、视图名、表单名等参数。开发者可以利用URL进行导航,创建动态链接,甚至在Web页面中...
Lotus Domino ACLManager是一款专为管理Lotus Domino数据库访问控制列表(Access Control List,简称ACL)设计的工具。在Lotus Domino系统中,ACL是用于控制用户和组对数据库访问权限的重要机制。这款工具提供了对...
Lotus Domino 7.0 是一款功能强大且灵活的企业级协作软件,提供了强大的邮件、日历、联系人管理、文档管理、讨论区和数据库等功能。在本文中,我们将详细介绍如何在 Windows 2003 环境下安装和配置 Lotus Domino 7.0...
在Lotus Domino开发中,有时我们需要对多个数据库进行大规模的搜索操作,这通常涉及到大量数据的处理和性能优化。多线程技术可以帮助我们提高搜索效率,分担服务器负载,从而提升用户体验。标题提到的"lotus domino ...
Java 访问 Domino 的编程指南是指在 Java 语言中如何访问和操作 Domino 对象的编程指南。Domino 是一种商业软件,它提供了强大的信息管理和collaboration 功能。Java 是一种广泛使用的编程语言,经常用来开发各种...
在IT行业中,Lotus Domino是一款广泛使用的协作软件平台,它提供了邮件、日程安排、文档管理等多种功能。Java连接到Domino主要是...通过深入学习和实践,开发者可以熟练掌握Java连接和操作Lotus Domino数据库的技能。
Java远程访问Domino邮箱数据是通过使用Lotus Domino Java API(Lotus Domino JNA或Lotus Domino Access for Java)来实现的。这个过程涉及到多个步骤和技术,包括理解Lotus Domino的架构、设置Java环境以及使用特定...
Lotus Domino以其强大的安全性著称,包括用户身份验证、数据加密、访问控制和审计功能。理解并正确配置这些安全特性是确保企业信息安全的关键。 8. 系统管理: 对于大型企业来说,管理多个Domino服务器和用户是...
【Lotus Domino BS开发在线人数Java版】 在Lotus Domino的Web应用程序开发中,获取当前在线用户数量是一项常见的需求。这个Java程序段展示了如何实现这一功能。Lotus Domino是一款企业级的协作软件,它提供了用于...
- `Database` 对象用于代表Domino数据库,可以通过 `getCurrentDatabase()` 获取当前上下文的数据库。`View` 对象表示数据库中的视图,可以获取视图的列数等信息。 总结,这个文档描述了如何使用Java在Domino环境...
开发者需要定义数据库的访问控制列表(ACL),控制哪些用户或角色可以读、写、管理数据库。此外,还可以为特定表单和视图设置独立的访问控制。 7. **构建代理** 代理是后台自动化任务的执行者,例如定期同步数据、...