`
chanshui
  • 浏览: 84542 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

java可以访问操作lotus domino数据库吗?

阅读更多
  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数据库.rar”提供了关于如何利用Java来访问和操作Domino数据库的重要信息。下面将详细讨论Java与Domino集成的关键知识点。 1. **Java与Domino的集成**: - Java可以借助Lotus Domino的...

    用Java 操作Domino 数据库例子

    通过上述步骤,我们可以利用Java语言有效地操作Domino数据库,无论是简单的读取还是复杂的事务处理。然而,值得注意的是,在实际部署中,应确保适当的错误处理和资源管理,以提高代码的健壮性和安全性。此外,由于...

    lotus domino附件开发--附件批量放到一个文档

    通过使用 Lotus Domino 的 API 和开发工具,开发者可以创建高效、灵活的附件处理解决方案。 Lotus Domino 附件开发的优势包括: * 强大的附件处理功能 *灵活的 API 和开发工具 * 高效的处理速度 * 广泛的应用场景...

    java连接Lotes邮件服务器(Domino) 读取邮件内容附件完整实例

    总结起来,Java连接Lotus Domino邮件服务器并读取邮件内容和附件涉及的主要知识点包括:JNDI或LotusJCA连接、Domino API的使用、数据库操作、邮件和附件的读取、日期转换以及数据模型的设计。通过理解和运用这些知识...

    Lotus Domino Web 高级编程8.pdf

    这些资源可以用来处理各种任务,如字符串操作、日期时间计算、数据库查询和事务管理等。 #### 3. 安全性增强 在高级编程中,安全性是一个至关重要的方面。Lotus Domino Web支持多种安全机制,包括用户认证、权限...

    编程实现notes domino数据库的访问

    标题 "编程实现notes domino数据库的访问" 涉及的主要知识点是使用编程语言与IBM Lotus Domino数据库进行交互。Lotus Domino是一款企业级的应用服务器,主要用于协同工作、电子邮件和文档管理,其数据库系统称为...

    Lotus Domino高级web编程随书盘

    2. **Notes/Domino数据库**:Domino中的数据库不仅仅是数据的容器,它们还包含逻辑、表单、视图、样式表和代理等组件,这些组件共同构成了一个完整的应用。 3. **表单**:表单是用户与数据交互的界面,可以设计为...

    Java和JavaScript在Lotus Domino_Notes5.0开发中的应用.pdf

    在Lotus Domino/Notes5.0中,Java和JavaScript可以相互配合使用,Java可以用于开发服务器端的应用程序,而JavaScript可以用于开发客户端的交互程序。这样的组合可以使开发变得更加灵活和高效。 Java在Lotus Domino/...

    Lotus Domino Web 高级编程9.pdf

    根据提供的信息,我们可以推断《Lotus Domino Web 高级编程9.pdf》这本书主要围绕着Lotus Domino Web的高级编程技巧展开。虽然具体内容没有给出详细信息,但是基于书名及通常此类书籍会涵盖的主题,我们可以推测书中...

    Lotus Domino培训ppt文件

    Domino URL是访问Domino资源的地址,它可以指向一个特定的数据库、表单、视图或文档。URL格式通常包括服务器名、路径、数据库名、视图名、表单名等参数。开发者可以利用URL进行导航,创建动态链接,甚至在Web页面中...

    Lotus Domino ACLManager

    Lotus Domino ACLManager是一款专为管理Lotus Domino数据库访问控制列表(Access Control List,简称ACL)设计的工具。在Lotus Domino系统中,ACL是用于控制用户和组对数据库访问权限的重要机制。这款工具提供了对...

    lotus domino

    Lotus Domino 7.0 是一款功能强大且灵活的企业级协作软件,提供了强大的邮件、日历、联系人管理、文档管理、讨论区和数据库等功能。在本文中,我们将详细介绍如何在 Windows 2003 环境下安装和配置 Lotus Domino 7.0...

    lotus domino 多线程搜索多数据库内容

    在Lotus Domino开发中,有时我们需要对多个数据库进行大规模的搜索操作,这通常涉及到大量数据的处理和性能优化。多线程技术可以帮助我们提高搜索效率,分担服务器负载,从而提升用户体验。标题提到的"lotus domino ...

    Java访问Domino的编程指南.doc

    Java 访问 Domino 的编程指南是指在 Java 语言中如何访问和操作 Domino 对象的编程指南。Domino 是一种商业软件,它提供了强大的信息管理和collaboration 功能。Java 是一种广泛使用的编程语言,经常用来开发各种...

    java连接domino帮助文档

    在IT行业中,Lotus Domino是一款广泛使用的协作软件平台,它提供了邮件、日程安排、文档管理等多种功能。Java连接到Domino主要是...通过深入学习和实践,开发者可以熟练掌握Java连接和操作Lotus Domino数据库的技能。

    如何用java远程访问Domino邮箱数据

    Java远程访问Domino邮箱数据是通过使用Lotus Domino Java API(Lotus Domino JNA或Lotus Domino Access for Java)来实现的。这个过程涉及到多个步骤和技术,包括理解Lotus Domino的架构、设置Java环境以及使用特定...

    lotus,domino 资料大全

    Lotus Domino以其强大的安全性著称,包括用户身份验证、数据加密、访问控制和审计功能。理解并正确配置这些安全特性是确保企业信息安全的关键。 8. 系统管理: 对于大型企业来说,管理多个Domino服务器和用户是...

    lotus domino BS开发在线人数java版

    【Lotus Domino BS开发在线人数Java版】 在Lotus Domino的Web应用程序开发中,获取当前在线用户数量是一项常见的需求。这个Java程序段展示了如何实现这一功能。Lotus Domino是一款企业级的协作软件,它提供了用于...

    Domino和Java互相访问.doc

    - `Database` 对象用于代表Domino数据库,可以通过 `getCurrentDatabase()` 获取当前上下文的数据库。`View` 对象表示数据库中的视图,可以获取视图的列数等信息。 总结,这个文档描述了如何使用Java在Domino环境...

    lotus domino 开发的基本步骤

    开发者需要定义数据库的访问控制列表(ACL),控制哪些用户或角色可以读、写、管理数据库。此外,还可以为特定表单和视图设置独立的访问控制。 7. **构建代理** 代理是后台自动化任务的执行者,例如定期同步数据、...

Global site tag (gtag.js) - Google Analytics